4
aws-sdk for Ruby을 사용하여 S3의 객체를 관리하고 있습니다.Ruby의 S3 객체에 대한 사용 권한 확인
object.acl = :public_read
공개 읽기 권한이 개체에 이미 부여되어 있는지 확인하는 방법이 있습니까?
aws-sdk for Ruby을 사용하여 S3의 객체를 관리하고 있습니다.Ruby의 S3 객체에 대한 사용 권한 확인
object.acl = :public_read
공개 읽기 권한이 개체에 이미 부여되어 있는지 확인하는 방법이 있습니까?
Ruby aws-sdk의 설명서가 좋지 않아서 찾을 수 없었습니다. 다음은 파일에 대한 읽기 권한이 있는지 여부를 확인하기 위해 만든 함수입니다. 사용자의 필요에 따라이를 수정 :
객체가 어떤 S3 개체입니다def check_if_public_read(object)
object.acl.grants.each do |grant|
begin
if(grant.grantee.uri == "http://acs.amazonaws.com/groups/global/AllUsers")
return true if ([:read, :full_control].include?(grant.permission.name))
end
rescue
end
end
return false
end
:
AWS.config(
:access_key_id => "access key",
:secret_access_key => "secret key"
)
s3 = AWS::S3.new
file = s3.buckets["my_bucket"].objects["path/to/file.png"]
check_if_public_read(file) => true
내가 개체와 AWS-SDK 소스 코드를보고이 알아 낸 점에 유의하시기 바랍니다, 그리고 URI 매개 변수가 시간이 지남에 따라 변경 될 수 있습니다. 이 기능은 현재 aws-sdk gem 버전 1.3.5에서 작동합니다.
감사합니다. 아이디어가 있습니다. – iltempo