2012-10-16 43 views
10

Tôi đang viết mã để cấp quyền READ cho tất cả người dùng sử dụng đá quý aws-sdk. Trong tài liệu hướng dẫn cho các viên ngọc, tôi thấy như sau:Ruby aws-sdk - cấp quyền cho tất cả người dùng

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 

Tất cả đều có ý nghĩa, tuy nhiên tôi không hoàn toàn chắc chắn làm thế nào tôi có thể nói việc cấp quyền đọc để ALL người dùng?

Trả lời

28

Ví dụ bạn có thể làm việc, nhưng phù hợp hơn với các ACL phức tạp (danh sách điều khiển truy cập). Amazon S3 có một số ac-box bạn có thể sử dụng cho các đối tượng của bạn. Đoạn mã sau sẽ cập nhật ACL cho tất cả các đối tượng trong nhóm của bạn để mọi người có thể đọc chúng.

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

Hoặc, bạn có thể đặt ACL cho một đối tượng khi bạn tải lên (hoặc sao chép).

# 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://..." 
Các vấn đề liên quan