2012-10-16 6 views
10

Ich schreibe den Code zum Erteilen von Leseberechtigungen für alle Benutzer mit aws-sdk gem. In der Dokumentation für das Juwel, fand ich folgendes:Ruby AWS-SDK - Berechtigung für alle Benutzer erteilen

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 

Es macht alles Sinn, aber ich bin nicht ganz sicher, wie ich die Gewährung Erlaubnis ALLE Benutzer lesen kann sagen?

Antwort

28

Das Beispiel, das Sie haben, kann funktionieren, ist aber eher für komplizierte ACLs (Access Control Lists) geeignet. Amazon S3 verfügt über eine Anzahl von Konserven, die Sie für Ihre Objekte verwenden können. Das folgende Snippet aktualisiert die ACL für alle Objekte in Ihrem Bucket, sodass jeder sie lesen kann.

Alternativ können Sie die ACL für ein Objekt festlegen, wenn Sie es hochladen (oder kopieren).

# 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://..." 
Verwandte Themen