我正在使用
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返回某种加速参数吗? 我的问题是:我这样做对吗?
答案 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);