Ruby aws-sdk - предоставить разрешение всем пользователям

Я пишу код для предоставления READ-разрешений всем пользователям с помощью 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

Все имеет смысл, однако я не совсем уверен, как я могу передать разрешение на чтение для ВСЕ пользователей?

Ответ 1

Пример, который у вас есть, может работать, но более подходит для сложных ACL (списки управления доступом). У Amazon S3 есть несколько консервов, которые вы можете использовать для своих объектов. Следующий фрагмент обновит 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://..."