2012-10-16 2 views
10

aws-sdk gem을 사용하는 모든 사용자에게 읽기 권한을 부여하는 코드를 작성 중입니다. 그러나 나는 보조금이 에 모든 사용자에게 읽기 권한을 알 수있는 방법을 아주 확실하지 않다, 그것은 모두 의미가Ruby aws-sdk - 모든 사용자에게 사용 권한 부여

bucket.objects.each do |object| 
    puts object.key 
    acl = object.acl 
    acl.grant(:read).to("TODO: how can I specify 'ALL'???") 
    object.acl = acl.to_xml 
end 

: 보석에 대한 문서에서, 나는 다음을 발견?

답변

28

예제는 사용할 수 있지만 복잡한 ACL (액세스 제어 목록)에 더 적합합니다. Amazon S3에는 개체에 사용할 수있는 여러 가지 canned-acls가 있습니다. 팔로우 스 니펫은 사용자가 읽을 수 있도록 버킷의 모든 개체에 대한 ACL을 업데이트합니다.

bucket.objects.each{|obj| obj.acl = :public_read } 

또는 개체를 업로드 (복사) 할 때 ACL을 설정할 수 있습니다.

# upload a file and set the acl so the world can download it 
obj = bucket.objects['object-key'].write(file, :acl => :public_read) 

puts obj.public_url 
#=> 'https://..." 
관련 문제