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

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= ....

我怎样才能做到这一点?