2013-03-05 25 views

回答

2

Ruby aws-sdk的文檔很差,我也無法找到它。下面是我創建的一個函數,用於檢查文件是否具有讀取權限。修改它按您的需求:

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 

object是任何S3對象:

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寶石版本1.3.5。

+0

謝謝,我明白了。 – iltempo 2013-03-20 23:08:11