Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 使用Ruby aws sdk向图像添加缓存控制_Amazon S3_Cache Control_Aws Sdk Ruby - Fatal编程技术网

Amazon s3 使用Ruby aws sdk向图像添加缓存控制

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

我试图通过Ruby脚本将缓存控制添加到s3存储桶中的图像中,但一直遇到
拒绝访问(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
任何帮助都将不胜感激