使用 PHP 将对象上传到传输加速的 S3 存储桶

1 php amazon-s3 amazon-web-services aws-sdk

我是 AWS 的新手。据我了解,S3 传输加速使用 Cloudfront 边缘实现最快上传,但我找不到 PHP API 的正确文档,用于将对象上传到启用传输加速的存储桶。我的代码:

use Aws\S3\S3Client;

 $S3_Client = new S3Client([
'version'     => 'latest',
'region'    =>'ap-south-1',
  'credentials' => [
        'key'    => 'Accesskey',
        'secret' => 'Secretkey',
  ],
 'endpoint' => 'http://my_bucket_name.s3-accelerate.amazonaws.com'
]);

$bucket = 'my_bucket_name';
$key = 'EC2.pdf';
$SourceFile = '/path/to/the/file/EC2.pdf';


$put = $S3_Client->putObject([
    'Bucket' => $bucket,
    'Key' => $key,
    'SourceFile' => $SourceFile
]);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

The authorization header is malformed;
the region 'ap-south-1' is wrong; expecting 'us-east-1'
Run Code Online (Sandbox Code Playgroud)

但是我的存储桶位于 us-east-1 ,当我将区域更改为

us-east-1
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

The specified bucket does not exist
Run Code Online (Sandbox Code Playgroud)

Mic*_*bot 6

而不是endpoint => ...传递'use_accelerate_endpoint' => True构造函数

在构建发送到 S3 的请求时,有许多不同的规则会起作用。该endpoint选项提供了一个服务端点,而不是一个存储桶端点,并且主要用于非标准配置。