gpt4 book ai didi

shell - 使用 IAM 用户凭证通过curl 下载 Amazon S3 文件

转载 作者:行者123 更新时间:2023-12-02 20:21:03 29 4
gpt4 key购买 nike

我创建了一名只能访问一个存储桶的 IAM 用户。我已经通过 web 和 python boto 测试了凭据和权限。它工作正常。

现在我需要使用这些凭据并通过 curl 从该存储桶下载私有(private)文件。

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

但我收到以下错误:

InvalidAccessKeyIdThe AWS Access Key Id you provided does not exist in our records.

请帮忙,如何使用 curl 下载文件?有什么我遗漏的或者无法通过 curl 命令实现的吗?

谢谢!

最佳答案

以下是如何使用 s3 curl 脚本下载的示例,

#!/bin/sh 
file=path/to/file
bucket=your-bucket
resource="/${bucket}/${file}"
contentType="application/x-compressed-tar"
dateValue="`date +'%a, %d %b %Y %H:%M:%S %z'`"
stringToSign="GET
${contentType}
${dateValue}
${resource}"
s3Key=xxxxxxxxxxxxxxxxxxxx
s3Secret=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
signature=`/bin/echo -en "$stringToSign" | openssl sha1 -hmac ${s3Secret} -binary | base64`
curl -H "Host: ${bucket}.s3.amazonaws.com" \
-H "Date: ${dateValue}" \
-H "Content-Type: ${contentType}" \
-H "Authorization: AWS ${s3Key}:${signature}" \
https://${bucket}.s3.amazonaws.com/${file}

希望有帮助。

关于shell - 使用 IAM 用户凭证通过curl 下载 Amazon S3 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28561724/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com