gre*_*reg 4 amazon-s3 amazon-web-services
我在不同地区有两个桶(假设 A 和 B)。我在存储桶 A 中有带有元数据 (x-amz-meta-mymeta) 的档案。我确实使用 CLI 执行复制命令:
aws s3 cp s3://A/${file}.tar.gz s3://B/
Run Code Online (Sandbox Code Playgroud)
根据文件的不同,是否保留元数据。文件pikachu复制后具有相同的元数据,但pika-chu目标存储桶B中的文件不具有元数据。
我已阅读文档,但除了此 SO 答案中公开的信息之外,找不到任何其他信息。
即使目标文件已经存在或不存在,元数据也会丢失。
任何提示?
编辑:即使复制命令是,元数据也会丢失
aws s3 cp s3://A/${file}.tar.gz s3://B/${file}
Run Code Online (Sandbox Code Playgroud)
编辑:有关信息,文件的大小不同,pikachu几 Mb 大而pika-chu更像是 50Mb。
编辑:使用aws s3 cp没有多部分信息的文件上传。
这是关于 PUT COPY REST API 的官方文档。
查看 x-amz-metadata-directive。
对于 CLI 添加(仅对小于 5 GB 的文件有效并且没有分段复制/上传 - 分段复制不会保留所有标头):
--metadata-directive COPY
Run Code Online (Sandbox Code Playgroud)
--metadata-directive(字符串)指定元数据是从源对象复制还是替换为复制 S3 对象时提供的元数据。请注意,如果对象被部分复制,则源对象的元数据将不会被复制,无论 --metadata-directive 的值如何,而是必须在命令行上将所需的元数据值指定为参数。有效值为 COPY 和 REPLACE。如果未指定此参数,则默认使用 COPY。如果使用 REPLACE,则复制的对象将仅具有 CLI 命令指定的元数据值。请注意,如果您使用以下任何参数:--content-type、content-language、--content-encoding、--content-disposition、--cache-control 或--expires,
[问题后编辑]
AWS CLI 将自动使用分段上传。这是可配置的。此链接显示了 S3 配置选项。
| 归档时间: |
|
| 查看次数: |
3267 次 |
| 最近记录: |