尝试将名为test.txt的本地文件复制到我的s3桶中,并向文件中添加元数据。
但它总是打印错误:
参数--元数据-指令:无效选择,有效选择是:复制/替换
是否可以使用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/1.9.7 Python/2.7.10达尔文/16.1.0 botocore/1.3.7
操作系统:macOS塞拉利昂版10.12.1
编辑
值得一提的是,上传一个没有-元数据标志的文件很好。
嗯,我已经用aws s3 cp help
检查了我的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"}'
发布于 2016-11-16 08:41:30
实际上,自1.9.10以来,已经添加了对元数据选项的支持。
aws s3
在cp、mv和sync中添加了对自定义元数据的支持。
因此,将aws升级到此版本(或者更好地升级到最新版本)-- metadata
值需要是一个映射,因此
aws s3 cp test.txt s3://a-bucket/test.txt --metadata '{"x-amz-meta-cms-id":"34533452"}'
发布于 2017-05-24 11:20:01
安装s3cmd
工具(免费)并调用如下所示:
s3cmd modify --add-header x-amz-meta-foo:bar s3://<bucket>/<object>
使用
x-amz-meta-foo:bar
标头,您将获得foo
作为键,bar
作为该键的值。
发布于 2017-02-17 14:26:06
存在带有元数据指令“复制”选项的错误。
aws s3api copy-object --bucket testkartik --copy-source testkartik/costs.csv --key costs.csv --metadata-directive "COPY" --metadata "SomeKey=SomeValue"
下面是使用JQ解决方案理解cli命令的三个步骤。
aws s3api head-object --bucket <bucket> --key <key> | jq '.Metadata' | jq --compact-output '. +{"new":"metadata", "another" : "metadata"}'
aws s3api copy-object --bucket <bucket-name> --copy-source <bucket/key> --key <key> --metadata-directive "REPLACE" --metadata $(READ-THE-EXISTING-From-Step-2)
一举完成指挥。
aws s3api copy-object --bucket <bucket-name> --copy-source <bucket/key> --key <key> --metadata-directive "REPLACE" --metadata $(aws s3api head-object --bucket <bucket> --key <key> | jq '.Metadata' | jq --compact-output '. +{"new":"metadata", "another" : "metadata"}')
https://stackoverflow.com/questions/40626967
复制相似问题