gpt4 book ai didi

amazon-web-services - 使用 AWS SDK (PHP) 更改生成的 S3 链接的基本 URL

转载 作者:行者123 更新时间:2023-12-04 02:00:55 31 4
gpt4 key购买 nike

我想创建这里提到的预签名 S3 URL:
https://docs.aws.amazon.com/aws-sdk-php/v3/guide/service/s3-presigned-url.html

我的代码与 url 中提到的示例非常相似:

$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();

上面生成的网址如下:

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
] );

这将生成一个签名 URL,如下所示:

http://books.com/testKey?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAI2V4Lxxxxxxxxxxx%2F20171116%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20171116T191003Z&X-Amz-SignedHeaders=host&X-Amz-Expires=1200&X-Amz-Signature=0b735cb661b1d2e25c7f5b477d4c657f160a85aa53bee3ea91244340f6d37dee

关于amazon-web-services - 使用 AWS SDK (PHP) 更改生成的 S3 链接的基本 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47336397/

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