将S3对象从一个键复制到另一个键时出错

时间:2016-06-10 06:51:57

标签: ruby-on-rails ruby amazon-web-services amazon-s3 aws-sdk

我一直在尝试使用AWS Ruby sdk(v2)将S3对象从一个密钥克隆到另一个密钥。问题是,目标目的地不存在;它会引发我的错误

Aws::S3::Errors::NoSuchKey: The specified key does not exist.

我很想知道,AWS CLI同步方法如何在两个不同的S3存储桶之间或同一个存储桶之间复制和同步对象。

下面是我用来执行工作的代码片段。

s3_bucket = Aws::S3::Bucket.new(
    name: [BUCKET_NAME],
    region: [S3_BUCKET_REGION],
    credentials: Aws::Credentials.new(
      [ACCESS_KEY_ID],
      [SECRET_ACCESS_KEY]
      )
    )

  source_bucket_object = s3_bucket.object(s3_source_key)
  target_bucket_object = s3_bucket.object(s3_target_key)

  target_bucket_object.copy_from(source_bucket_object.key, acl: 'public-read')

我也尝试过以下方式,但它没有帮助;

target_bucket_object.copy_from(copy_source: "#{target_bucket_object.bucket_name}/#{source_bucket_object.key}")

请帮助我解决这个问题。另外,如果有另一种方法可以解决这个问题;建议。

提前致谢。

NISHANT

0 个答案:

没有答案