Amazon web services 如何从CLI为1000多个对象使用aws s3同步

Amazon web services 如何从CLI为1000多个对象使用aws s3同步,amazon-web-services,amazon-s3,aws-cli,Amazon Web Services,Amazon S3,Aws Cli,我正在尝试使用aws cli S3 sync或aws cli S3 cp--recursive将S3存储桶(实际上是数字海洋空间)的内容同步到本地硬盘 我尝试过使用aws clisync和cp命令,但都在1000个对象之后停止。我知道sync提到用--page size标志()将其限制为1000个对象,但似乎我所看到的一切都在谈论同步整个存储桶,但我的sync停止在1000个对象,我有700万个对象要同步 aws s3 cp s3://MYBUCKET ~/Documents/temp_spac

我正在尝试使用aws cli S3 sync或aws cli S3 cp--recursive将S3存储桶(实际上是数字海洋空间)的内容同步到本地硬盘

我尝试过使用aws cli
sync
cp
命令,但都在1000个对象之后停止。我知道sync提到用--page size标志()将其限制为1000个对象,但似乎我所看到的一切都在谈论同步整个存储桶,但我的sync停止在1000个对象,我有700万个对象要同步

aws s3 cp s3://MYBUCKET ~/Documents/temp_space --source-region https://sfo2.digitaloceanspaces.com --profile MYPROFILE --endpoint=https://sfo2.digitaloceanspaces.com --recursive


我希望能够同步整个bucket,而不仅仅是同步1000个对象。

参数''-page size''限制请求的数量或结果,而不是总数

例如,在一个场景中,您有一个包含5000个对象的目录,您希望将其复制到一个s3 bucket。您的命令看起来类似于aws s3 cp。s3://your bucket。这将把当前目录5000个对象的所有内容复制到s3存储桶中

默认(和最大)
-页面大小
是1000个对象,因此,因为我们没有指定
-页面大小
,为了完成将所有5000个对象复制到s3存储桶,AWSCLI将处理5个请求(5 x 1000个对象)来复制所有5000个对象

通常,您应该能够忽略此可选参数并运行
aws s3 cp
aws s3 sync
,而不会出现问题。如果您面临请求超时问题,则可以添加值小于1000的
-page size
参数来解决超时问题。

简而言之,您可以使用替换aws cli

s3列表对象API的v1最多返回1000个条目,一个
标记可以用于下一个查询。但是由于某些原因,
aws cli s3 sync
不支持
标记

s3列表对象API的v2使用
ContinuationToken
替换
标记<代码>aws cli
更好地与v2配合使用

对于DigitalOcean,当前不支持版本2列表类型


因此,您必须使用s3cmd。

您是否尝试过这样做,或者您的问题仅基于阅读文档?我刚刚上传了52348个对象,使用的是“aws s3 cp-递归-安静”。s3://我的水桶“”,花了大约20分钟。这可能是数字海洋的一个限制?
aws sync cp s3://MYBUCKET ~/Documents/temp_space --source-region https://sfo2.digitaloceanspaces.com --profile MYPROFILE --endpoint=https://sfo2.digitaloceanspaces.com