微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

预签名 AWS S3 文件

如何解决预签名 AWS S3 文件

我有一个允许打开文件的存储桶。我上传一个名为 test.gsm 的测试文件,并尝试通过执行

root@server2:~# aws s3 presign  s3://dovid-ft/test.gsm  --expires-in 604800
https://dovid-ft.s3.amazonaws.com/test.gsm?AWSAccessKeyId=AKIAJSDPJKCCGAZ257VQ&Signature=0zbBU2B%2FKVrqgOXFQNTGh3gme%2Fo%3D&Expires=1625658191
root@server2:~# 

如果我然后尝试获取文件,则会收到 403。

root@server2:~# wget 'https://dovid-ft.s3.amazonaws.com/test.gsm?AWSAccessKeyId=AKIAJSDPJKCCGAZ257VQ&Signature=0zbBU2B%2FKVrqgOXFQNTGh3gme%2Fo%3D&Expires=1625658191'
--2021-06-30 07:49:21--  https://dovid-ft.s3.amazonaws.com/test.gsm?AWSAccessKeyId=AKIAJSDPJKCCGAZ257VQ&Signature=0zbBU2B%2FKVrqgOXFQNTGh3gme%2Fo%3D&Expires=1625658191
Resolving dovid-ft.s3.amazonaws.com (dovid-ft.s3.amazonaws.com)... 52.217.88.204
Connecting to dovid-ft.s3.amazonaws.com (dovid-ft.s3.amazonaws.com)|52.217.88.204|:443... connected.
HTTP request sent,awaiting response... 403 Forbidden
2021-06-30 07:49:21 ERROR 403: Forbidden.

root@server2:~# 

我还尝试解码密钥的 HTML 以查看是否有帮助,但没有。

root@server2:~# wget 'https://dovid-ft.s3.amazonaws.com/test.gsm?AWSAccessKeyId=AKIAJSDPJKCCGAZ257VQ&Signature=0zbBU2B/KVrqgOXFQNTGh3gme/o=&Expires=1625658191'
--2021-06-30 07:49:37--  https://dovid-ft.s3.amazonaws.com/test.gsm?AWSAccessKeyId=AKIAJSDPJKCCGAZ257VQ&Signature=0zbBU2B/KVrqgOXFQNTGh3gme/o=&Expires=1625658191
Resolving dovid-ft.s3.amazonaws.com (dovid-ft.s3.amazonaws.com)... 52.217.32.100
Connecting to dovid-ft.s3.amazonaws.com (dovid-ft.s3.amazonaws.com)|52.217.32.100|:443... connected.
HTTP request sent,awaiting response... 403 Forbidden
2021-06-30 07:49:37 ERROR 403: Forbidden.

root@server2:~#

有什么方法可以获取日志或查看问题所在以及我的请求被拒绝的原因?到目前为止,能够获取文件的唯一方法是将其公开,但我不想这样做。

解决方法

事实证明我使用了错误的凭据来预先签署文件。当我尝试使用错误的凭据预先签署它们时,为什么 amazon 没有抛出错误是我无法理解的。

,

解决方案在 wget 中。重新创建场景后,我也无法通过 wget 下载文件。
wget -O test.gsm "https://yourURL" # 并且会做。

参考:Amazon AWS S3 signed URL via Wget

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。