使用Ruby aws-sdk

问题描述

我正在尝试通过Ruby脚本将cache_control添加到s3存储桶中的图像,但是我仍然遇到Access Denied (Aws::S3::Errors::AccessDenied)错误。我所有的环境变量都是正确的,并且使用脚本创建新存储桶没有问题,只是每次我尝试添加cache_control时都会引发错误

我尝试深入研究aws-sdk文档https://docs.aws.amazon.com/sdk-for-ruby/v2/api/Aws/S3/Object.html,但是我无法将自己的想法笼罩在脚本的问题上。

以下是功能正常时的代码

  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_control和其他选项时遇到“访问被拒绝”错误时,代码如下所示:

  def initialize(region: 'us-west-2',key: "#{to}/#{filename}",acl: "public-read",cache_control: "max-age=154400",Metadata_directive: "REPLACE")
    end
  end

任何帮助将不胜感激!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)