【发布时间】:2021-01-20 02:22:46
【问题描述】:
使用 AWS CLI;我们可以直接从一个存储桶复制或同步文件到另一个存储桶。使用 SDK;我可以看到用于下载和上传的 api。但是我们可以使用 sdk 直接将文件从一个存储桶复制到另一个存储桶(在不同的 aws 帐户中)吗?
【问题讨论】:
标签: amazon-web-services amazon-s3 aws-sdk
使用 AWS CLI;我们可以直接从一个存储桶复制或同步文件到另一个存储桶。使用 SDK;我可以看到用于下载和上传的 api。但是我们可以使用 sdk 直接将文件从一个存储桶复制到另一个存储桶(在不同的 aws 帐户中)吗?
【问题讨论】:
标签: amazon-web-services amazon-s3 aws-sdk
是的。 CopyObject API 调用可以在 Amazon S3 存储桶之间复制一个对象,包括不同区域和不同账户的存储桶。
要在账户之间复制对象,一组凭据需要足够的权限才能从源存储桶读取并写入目标存储桶。您可以:
ACL=public-read 设置为将对象的所有权传递给目标帐户。请注意,它一次只复制一个对象,因此如果您希望复制多个对象,则需要遍历对象列表并为每个对象单独调用CopyObject。
【讨论】:
很简单,在帮助下查看所有 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 .
【讨论】: