【发布时间】:2022-11-29 09:20:43
【问题描述】:
我正在尝试在 shell 脚本中设置 S3 存储中的保留期:
curl -k -X PUT $ENDPOINT -H "Content-Type: application/xml" -H "Accept: application/xml" -d "<Request><Login>${ACCESS_KEY_ID}</Login><Password>${SECRET_ACCESS_KEY}</Password></Request><ObjectLockConfiguration><ObjectLockEnabled>Enabled</ObjectLockEnabled><Rule><DefaultRetention><Mode>COMPLIANCE</Mode><Years>${RETYEARS}</Years></DefaultRetention></Rule></ObjectLockConfiguration>"
没有任何内容返回到标准输出。但这返回到 stderr:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 285 0 0 100 285 0 33348 --:--:-- --:--:-- --:--:-- 35625
这是否意味着它正在工作(尽管有 stderr)?
脚本中的另一行(以及另一个端点和其他登录名和密码):
curl -k -X PUT $ENDPOINT -H "Date: `date`" -H "Content-Type: application/xml" -H "Accept: application/xml" -H "Authorization: ${ACCESS_KEY_ID}:${SECRET_ACCESS_KEY}" -d "<ObjectLockConfiguration><ObjectLockEnabled>Enabled</ObjectLockEnabled><Rule><DefaultRetention><Mode>COMPLIANCE</Mode><Years>${RETYEARS}</Years></DefaultRetention></Rule></ObjectLockConfiguration>"
标准输出:
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>MethodNotAllowed</Code>
<Message>The specified method is not allowed against this resource.</Message>
<Resource>/</Resource><RequestId>1669626042508238</RequestId></Error>
标准错误:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 407 100 221 100 186 488 410 --:--:-- --:--:-- --:--:-- 487
这让我有点困惑。我将不胜感激。
我曾希望返回确认有关保留期的积极结果。
问候
安德斯
【问题讨论】:
-
这里需要一些编辑技巧吗? Stackoverflow 删除了我帖子中的一些行,尤其是 curl 命令。我尝试再次发布它们:
-
curl -k -X PUT $ENDPOINT -H "Content-Type: application/xml" -H "Accept: application/xml" -d "<请求><登录>${ACCESS_KEY_ID}</登录><密码>${ SECRET_ACCESS_KEY}</Password></Request><ObjectLockConfiguration><ObjectLockEnabled>已启用</ObjectLockEnabled><Rule><DefaultRetention><Mode>COMPLIANCE</Mode><Years>${RETYEARS}</Years></DefaultRetention> </规则></ObjectLockConfiguration>”
-
curl -k -X PUT $ENDPOINT -H "Date:
date" -H "Content-Type: application/xml" -H "Accept: application/xml" -H "Authorization: ${ACCESS_KEY_ID}:${SECRET_ACCESS_KEY }" -d "<ObjectLockConfiguration><ObjectLockEnabled>启用</ObjectLockEnabled><Rule><DefaultRetention><Mode>COMPLIANCE</Mode><Years>${RETYEARS}</Years></DefaultRetention></Rule>< /对象锁定配置>" -
命令是否正常运行值得怀疑,您发送的字符串不是有效的 XML,并且未正确签名,此外 AWS Secret 是一个秘密,永远不应该离开您的机器。您是否出于某种原因不使用 AWS SDK 调用?它将为您处理这些问题。
标签: amazon-s3 curl set period retention