代码之家  ›  专栏  ›  技术社区  ›  Deepak Singhal

使用aws-sdk在bucket之间复制对象

  •  0
  • Deepak Singhal  · 技术社区  · 4 年前

    使用AWS CLI;我们可以直接将文件从一个bucket复制或同步到另一个buckets。使用SDK;我可以看到下载和上传的api。但是,我们可以使用sdk直接将文件从一个bucket复制到另一个buckets(在不同的aws帐户中)吗!

    2 回复  |  直到 4 年前
        1
  •  3
  •   John Rotenstein    4 年前

    对。这个 CopyObject API调用可以在Amazon S3桶之间复制一个对象,包括不同地区和不同账户的桶。

    要在帐户之间复制对象,一组凭据需要足够的权限才能从源存储桶读取并写入目标存储桶。您可以:

    • 使用来自的凭据 目的地帐户 ,并在上使用Bucket策略 源桶 为了授予读取权限,
    • 使用来自的凭据 源帐户 ,并在上使用Bucket策略 目的地桶 授予写入权限。确保你设置好了 ACL=public-read 所有权转移 将对象添加到目标帐户。

    请注意,它只复制 一次一个物体 ,因此您需要遍历对象列表并调用 复制对象 如果您想复制多个对象,请分别复制每个对象。

        2
  •  1
  •   Jeremy Thompson    4 年前

    很容易,请参阅帮助中的所有CLI命令:

    aws s3 --help

    上传文件:

    aws s3 cp <path-to-file-from-local> s3://<S3_BUCKET_NAME>/<file-name> 
    

    下载文件:

    aws s3 cp s3://<S3_BUCKET_NAME>/<file-name> <path-to-file-from-local> 
    

    移动文件:

    aws s3 mv s3://<S3_BUCKET_NAME>/<file-name> s3://<S3_BUCKET_NAME>/<file-name>
    

    您可以使用 . 指定当前目录,例如:

    aws s3 cp s3://MyBucket/Test.txt .