Yah*_*din 5 amazon-s3 amazon-web-services
我想创建预签名的 S3 URL,如下所述: https: //docs.aws.amazon.com/aws-sdk-php/v3/guide/service/s3-presigned-url.html
我的代码与网址中提到的示例非常相似:
$sdk = new Aws\Sdk( [
'region' => 'eu-west-2',
'version' => 'latest',
] );
$s3Client = $sdk->createS3();
$cmd = $s3Client->getCommand('GetObject', [
'Bucket' => 'books.com',
'Key' => 'testKey'
]);
$request = $s3Client->createPresignedRequest($cmd, '+20 minutes');
// Get the actual presigned-url
$presignedUrl = (string) $request->getUri();
Run Code Online (Sandbox Code Playgroud)
上面生成的 url 如下所示:
https://s3.eu-west-2.amazonaws.com/books.com/testKey?X-Amz-Content-Sha256= ....
这正如预期的那样。但是,我的 S3 存储桶具有静态网站托管,并且我使用 CNAME 记录,允许我使用不同的基本 url。
因此我想要以下 URL:
http://books.com/my-bucket/testKey?X-Amz-Content-Sha256= ....
我怎样才能做到这一点?
您可以将端点设置为您的存储桶域名:
$sdk = new Aws\Sdk( [
'region' => 'eu-west-2',
'version' => 'latest',
'endpoint' => 'http://books.com',
'bucket_endpoint' => true
] );
Run Code Online (Sandbox Code Playgroud)
这将生成一个签名 URL,如下所示:
归档时间: |
|
查看次数: |
2327 次 |
最近记录: |