Jon*_*son 13 amazon-s3 amazon-web-services aws-cli
尝试将名为test.txt的本地文件复制到我的s3存储桶并将元数据添加到该文件中.
但它总是打印错误:
参数--metadata-directive:无效的选择,有效的选择是:COPY | 更换
是否可以使用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"}'
Run Code Online (Sandbox Code Playgroud)
aws --version: aws-cli/1.9.7 Python/2.7.10 Darwin/16.1.0 botocore/1.3.7
操作系统:macOS Sierra版本10.12.1
编辑
值得一提的是,上传没有--metadata标志的文件可以正常工作.
嗯,我已经检查了我的cli版本的帮助,aws s3 cp help
结果它没有--metadata作为一个选项列出,因为上面给定链接的文档确实如此.
如果runnig旧版本的aws cli
Use aws s3api put-object
Run Code Online (Sandbox Code Playgroud)
如何将文件上传到存储桶并添加元数据:
aws s3api put-object --bucket a-bucket --key test.txt --body test.txt --metadata '{"x-amz-meta-cms-id":"34533452"}'
Run Code Online (Sandbox Code Playgroud)
Fré*_*nri 18
实际上,自1.9.10以来已添加对元数据选项的支持
aws s3在cp,mv和sync中添加了对自定义元数据的支持.
所以升级你的aws cli到这个版本(甚至更好到最新) - 并且metadata值必须是一个地图所以
aws s3 cp test.txt s3://a-bucket/test.txt --metadata '{"x-amz-meta-cms-id":"34533452"}'
Run Code Online (Sandbox Code Playgroud)
小智 6
安装s3cmd工具(免费)并像这样调用:
s3cmd modify --add-header x-amz-meta-foo:bar s3://<bucket>/<object>
Run Code Online (Sandbox Code Playgroud)
通过标头,
x-amz-meta-foo:bar您将获得该键的foo键和值。bar
| 归档时间: |
|
| 查看次数: |
11902 次 |
| 最近记录: |