Ответ 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://..."