【发布时间】:2021-06-26 13:39:51
【问题描述】:
我想创建一个使用 AWS S3 进行存储的系统。我们希望这些文件不能用于互联网,但我们希望能够共享它们。为了做到这一点,我们需要做一个预兆。以附件 test_file.gsm 为例。 URL 为https://bender-family.s3.amazonaws.com/test_file.gsm,S3 路径为s3://bender-family.s3.amazonaws.com/test_file.gsm。如果我尝试使用aws s3 presign s3://bender-family.s3.amazonaws.com/test_file.gsm 进行预签名,我会返回:
root@server2:~# aws s3 presign s3://bender-family.s3.amazonaws.com/test_file.gsm
https://s3.amazonaws.com/bender-family.s3.amazonaws.com/test_file.gsm?AWSAccessKeyId=(aws access key here)&Signature=(signature here)&Expires=1624596709
root@server2:~#
但是返回的 URL 不起作用。我得到一个 NoSuchBucket 错误。
root@server2:~# curl 'https://s3.amazonaws.com/bender-family.s3.amazonaws.com/test_file.gsm?AWSAccessKeyId=(aws access key here)&Signature=(signature here)&Expires=1624596709'
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>NoSuchBucket</Code><Message>The specified bucket does not exist</Message><BucketName>bender-family.s3.amazonaws.com</BucketName><RequestId>J9PMQAXV49P011B2</RequestId><HostId>(HostID Here)</HostId></Error>root@server2:~#
root@server2:~#
是不是我做错了什么?
gsm 文件在此处(如果需要):
【问题讨论】:
-
尝试在您的 presign 命令中指定
--region <aws-region>。它应该指向创建存储桶的区域。
标签: amazon-web-services amazon-s3 curl pre-signed-url