使用 aws sdk 在存储桶之间复制对象
Copy objects between buckets using aws sdk
使用 AWS CLI;我们可以将文件直接从一个存储桶复制或同步到另一个存储桶。使用开发工具包;我可以看到 api 用于下载和上传。但是我们可以使用 sdk 直接将文件从一个存储桶复制到另一个存储桶(在不同的 aws 帐户中)!
很简单,在帮助下查看所有 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>
可以用.指定当前目录,eg:
aws s3 cp s3://MyBucket/Test.txt .
是的。 CopyObject
API 调用可以在Amazon S3 bucket之间复制一个对象,包括不同地区和不同账户的bucket。
要在帐户之间复制对象,一组凭据需要足够的权限才能从源存储桶读取和写入目标存储桶。您可以:
- 使用来自目标账户的凭据,并在源存储桶上使用存储桶策略授予读取访问权限,或
- 使用来自源帐户的凭据,并在目标存储桶上使用存储桶策略来授予写入权限。确保将
ACL=public-read
设置为 将对象的所有权 传递给目标帐户。
请注意,它一次仅复制 一个对象,因此您需要遍历对象列表并为每个对象单独调用 CopyObject
,如果您希望复制多个对象。
使用 AWS CLI;我们可以将文件直接从一个存储桶复制或同步到另一个存储桶。使用开发工具包;我可以看到 api 用于下载和上传。但是我们可以使用 sdk 直接将文件从一个存储桶复制到另一个存储桶(在不同的 aws 帐户中)!
很简单,在帮助下查看所有 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>
可以用.指定当前目录,eg:
aws s3 cp s3://MyBucket/Test.txt .
是的。 CopyObject
API 调用可以在Amazon S3 bucket之间复制一个对象,包括不同地区和不同账户的bucket。
要在帐户之间复制对象,一组凭据需要足够的权限才能从源存储桶读取和写入目标存储桶。您可以:
- 使用来自目标账户的凭据,并在源存储桶上使用存储桶策略授予读取访问权限,或
- 使用来自源帐户的凭据,并在目标存储桶上使用存储桶策略来授予写入权限。确保将
ACL=public-read
设置为 将对象的所有权 传递给目标帐户。
请注意,它一次仅复制 一个对象,因此您需要遍历对象列表并为每个对象单独调用 CopyObject
,如果您希望复制多个对象。