使用php设置s3的加速端点

时间:2018-04-22 23:49:14

标签: php amazon-s3

我正在使用

getObjectUrl

为我的webapp获取s3可下载网址。 我已经为整个水桶启用了加速转移,但无论我如何配置它,我都没有看到任何真正的速度差异。

$bucket = 'bucketname';
$file = $_POST['file'];
$client = new Aws\S3\S3Client([
    'version' => 'latest',
    'region'  => 'eu-central-1',
    'credentials' => array(
    'key' => $s3key,
    'secret'  => $s3secret,
    'endpoint' => 'http://bucketname.s3-accelerate.amazonaws.com',
    'use_accelerate_endpoint'=>true,
  )
]);

我从

返回的网址
$plainUrl = $client->getObjectUrl($bucket, $file);

是:https://bucketname.s3.eu-central-1.amazonaws.com/filename.ext

这是对的吗?不应该将plainurl返回某种加速参数吗? 我的问题是:我这样做对吗?

1 个答案:

答案 0 :(得分:2)

根据s3文件

  

可以通过将“@use_accelerate_endpoint”设置为true或false来启用或禁用单个操作。注意:必须先在存储桶上启用S3 Accelerate,然后才能通过Accelerate端点访问它。

我设法使用s3 php获取签名的URL请求:

$cmd = $client->getCommand('GetObject', [
  'Bucket' => $config['bucket'],
  'Key'    => $key,
  'ResponseContentDisposition' => 'attachment; filename=' . $download_filename,
  '@use_accelerate_endpoint' => true,
]);
$request = $client->createPresignedRequest($cmd, '+180 minutes');

我使用默认的最小参数初始化了s3客户端。

$client = new S3Client($client_config);