Amazon s3 使用Ruby aws sdk向图像添加缓存控制
我试图通过Ruby脚本将缓存控制添加到s3存储桶中的图像中,但一直遇到Amazon s3 使用Ruby aws sdk向图像添加缓存控制,amazon-s3,cache-control,aws-sdk-ruby,Amazon S3,Cache Control,Aws Sdk Ruby,我试图通过Ruby脚本将缓存控制添加到s3存储桶中的图像中,但一直遇到拒绝访问(Aws::s3::Errors::AccessDenied)错误。我所有的环境变量都是正确的,我用脚本创建新的bucket没有问题,只是每次我尝试添加cache\u控件时,它都会抛出一个错误 我试着深入研究aws sdk的documentation,但是我还没有能够总结出我的脚本有什么问题 下面是代码在正常工作时的样子: def initialize(region: 'us-west-2', bucket_nam
拒绝访问(Aws::s3::Errors::AccessDenied)
错误。我所有的环境变量都是正确的,我用脚本创建新的bucket没有问题,只是每次我尝试添加cache\u控件时,它都会抛出一个错误
我试着深入研究aws sdk的documentation,但是我还没有能够总结出我的脚本有什么问题
下面是代码在正常工作时的样子:
def initialize(region: 'us-west-2', bucket_name: 'project-images')
@bucket = Aws::S3::Resource.new(region: region).bucket(bucket_name)
end
def copy(to:, from:)
bucket.objects(prefix: from).each do |object|
_, filename = object.key.split("/")
object.copy_to(bucket: bucket.name, key: "#{to}/#{filename}")
end
end
以下是当我试图添加cache_控件和其他选项时遇到拒绝访问错误时的代码:
def initialize(region: 'us-west-2', bucket_name: 'project-images')
@bucket = Aws::S3::Resource.new(region: region).bucket(bucket_name)
end
def copy(to:, from:)
bucket.objects(prefix: from).each do |object|
_, filename = object.key.split("/")
object.copy_to(bucket: bucket.name, key: "#{to}/#{filename}", acl: "public-read", cache_control: "max-age=154400", metadata_directive: "REPLACE")
end
end
任何帮助都将不胜感激