Хорошо, насколько я понимаю, если я установлю только allow, то по умолчанию это должно быть запрещено всем остальным.
Я пытался установить эту политику, но мои файлы все еще доступны для загрузки: простоудалите идентификатор ключа доступа из URL-адреса, например: http://s3.amazonaws.com/myBucket/myFile.pdf
ACL для моих файлов по-прежнему настроен как: public-Read, поэтому кажется, что у меня действительно есть конфликт между политикой Bucket и отдельными ACL-файлами.
Я прекратил делать все файлы закрытыми с помощью политики корзины, если кому-то когда-нибудь понадобится сделать большое количество файлов закрытыми внутри корзины S3, вот задача rake, которую я наконец написал:
desc "Make all objects in S3 private"
task :make_private => :environment do
require 'aws/s3'
bucket_name = 'yourBucket'
marker = ""
AWS::S3::Base.establish_connection!(
:access_key_id => "yourKey",
:secret_access_key => "yourSecret"
)
#create the read-only by me policy
owner_grant = ACL::Grant.new
grantee = ACL::Grantee.new
owner_grant.grantee = grantee
owner_grant.permission = 'READ'
grantee.type = "CanonicalUser"
grantee.id = 'yourID'
grantee.display_name = "yourName"
# Iterate over all files inside bucket and apply the policy to each files
loop do
objects = Bucket.objects(bucket_name, :marker=>marker, :max_keys=>1000)
marker = objects.last.key
puts "new marker is \"#{marker}\""
objects.each do |obj|
policy = S3Object.acl(obj.key, bucket_name)
policy.grants = [owner_grant]
S3Object.acl(obj.key, bucket_name, policy)
end
end
end
PS: для информации я попытался изменить все файлы ACL с помощью Firefox S3 Organizer или bucket explorer, ни один из них не работает, если у вас есть несколько сотен тысяч файлов, они просто замирают.