2013-03-05 3 views

답변

2

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에서 작동합니다.

+0

감사합니다. 아이디어가 있습니다. – iltempo

관련 문제