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
Ruby on rails 将对象从一个bucket复制到另一个bucket时,S3访问被拒绝_Ruby On Rails_Amazon S3 - Fatal编程技术网

Ruby on rails 将对象从一个bucket复制到另一个bucket时,S3访问被拒绝

Ruby on rails 将对象从一个bucket复制到另一个bucket时,S3访问被拒绝,ruby-on-rails,amazon-s3,Ruby On Rails,Amazon S3,我正在从事一个运行在AWSEB上的RubyonRails项目。Ruby版本是2.6。我想用下面的代码将文件从源bucket复制到目标bucket。但接收错误:Aws::S3::Errors::AccessDenied。 AWS访问密钥是正确的,我可以将文件放入源bucket;同时,源桶和目标桶位于同一位置。我不明白为什么会出现这个错误。你能帮忙吗 s3 = Aws::S3::Resource.new s3_src_key = terminal_id s3_key = 'company/' +

我正在从事一个运行在AWSEB上的RubyonRails项目。Ruby版本是2.6。我想用下面的代码将文件从源bucket复制到目标bucket。但接收错误:
Aws::S3::Errors::AccessDenied
。 AWS访问密钥是正确的,我可以将文件放入源bucket;同时,源桶和目标桶位于同一位置。我不明白为什么会出现这个错误。你能帮忙吗

s3 = Aws::S3::Resource.new

s3_src_key = terminal_id
s3_key = 'company/' + uuid

s3_src_obj = s3.bucket(ENV["AWS_PUBLIC_BUCKET"]).object(s3_src_key)
s3_obj = s3.bucket(ENV["AWS_S3_BUCKET"]).object(s3_key)

s3_src_obj.copy_to(s3_obj)

不是答案,而是故障排除步骤:

  • 这两个桶在同一个AWS帐户中吗?如否,请参阅
  • 这两个存储桶中是否有任何存储桶启用了KMS加密?如果是,则需要为IAM用户或实例配置文件授予kms:Decrypt for read和kms:Encrypt for write的访问权限。如果您的AWS帐户不拥有任何KMS密钥,请参阅
  • 是否有任何存储桶启用了版本控制?如果是,请确保写入时包含s3:PutObjectVersion,读取时包含s3:GetObjectVersion
  • 您有bucket或object ACL吗?如果是,请确保他们允许您进行读写
  • 如果上述任何一项都不适用于您,您可能需要分享更多信息,如下所示:

  • 你有固定的保险单吗?如果是,请将其粘贴到此处以进一步检查
  • 请粘贴IAM用户策略,以便我们可以跟踪它

  • 我建议使用[Elasticbeanstalk实例配置文件][1]获得资源权限。但对于实际问题,我不太确定。可能是一些事情。疑难解答-EB实例配置文件-