【发布时间】:2015-02-17 12:39:35
【问题描述】:
我创建了一个只能访问一个存储桶的 IAM 用户。我已经通过 web 和 python boto 测试了凭据和权限。它工作正常。
现在我需要使用这些凭据并通过curl 从该存储桶下载私有文件。
signature="$(echo -n "GET" | openssl sha1 -hmac "f/rHQ8yCvPthxxxxxxxXxxxx" -binary | base64)"
date="$(LC_ALL=C date -u +"%a, %d %b %Y %X %z")"
curl -H "Host: my-bucket.s3.amazonaws.com" -H "Date: $date" -H "Authorization: AWS 'XXXAJX2NY3QXXX35XXX':$signature" -H "Content-Type: 'text/plain'" https://my-bucket.s3.amazonaws.com/path/to_file.txt
但我收到以下错误:
InvalidAccessKeyId我们的记录中不存在您提供的 AWS 访问密钥 ID。
请帮忙,如何使用curl 下载文件?我有什么遗漏或无法通过curl 命令实现的吗?
谢谢!
【问题讨论】:
-
您的密钥
'XXXAJX2NY3QXXX35XXX'不应包含在'单引号中。 -
感谢 @Michael-sqlbot 删除
'更改了错误消息。现在卡在无效的签名提供错误。我在stackoverflow.com/questions/2777078/… 中做了所有提到的选项有什么帮助吗? -
您的问题现在不再与您的问题文本匹配,但由于您还没有发布任何答案,您应该编辑问题以反映您现在遇到的实际问题,记住它似乎这很容易变成chameleon question,这并不好。
signature="$(echo -n "GET" | openssl ...缺少很多 必要信息。 “GET”不是一个足够的“签名字符串”。参数参考文档,然后编辑或删除此问题。
标签: shell curl amazon-web-services amazon-s3