本文介绍了AWS S3 CLI CP文件和添加元数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

正在尝试将名为test.txt的本地文件复制到我的S3存储桶中,并将元数据添加到该文件。

但它总是打印错误:

参数--METADATA-指令:无效选项,有效选项为:复制|替换

根据我对文档的理解,是否可以使用cp命令执行此操作?AWS CLI CP DOCS

以下是我尝试过的命令:

aws s3 cp test.txt to s3://a-bucket/test.txt --metadata x-amz-meta-cms-id:34533452

aws s3 cp test.txt to s3://a-bucket/test.txt --metadata-directive COPY --metadata x-amz-meta-cms-id:34533452

aws s3 cp test.txt to s3://a-bucket/test.txt --metadata-directive COPY --metadata '{"x-amz-meta-cms-id":"34533452"}'

aws s3 cp test.txt to s3://a-bucket/test.txt --metadata '{"x-amz-meta-cms-id":"34533452"}'
AWS--版本:aws-cli/1.9.7 Python/2.7.10 Darwin/16.1.0 botocore/1.3.7

操作系统:MacOS Sierra 10.12.1版

编辑

值得一提的是,上载不带--METADATA标志的文件效果良好。

嗯,我已经使用查看了我的CLI版本的帮助事实证明,它没有像上述给定链接上的文档那样将--metadata列为选项。

如果运行旧版本的AWS CLI

Use aws s3api put-object

如何将文件上传到存储桶并添加元数据:

aws s3api put-object --bucket a-bucket --key test.txt --body test.txt --metadata '{"x-amz-meta-cms-id":"34533452"}'

单据:AWS S3API DOCS

推荐答案

实际上,从1.9.10

开始添加了对元数据的支持选项

因此将您的AWS CLI升级到此版本(或者更好地升级到最新版本)-并且metadata值需要是地图

aws s3 cp test.txt s3://a-bucket/test.txt --metadata '{"x-amz-meta-cms-id":"34533452"}'

这篇关于AWS S3 CLI CP文件和添加元数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-19 21:46