Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php设置s3的加速端点_Php_Amazon S3 - Fatal编程技术网

使用php设置s3的加速端点

使用php设置s3的加速端点,php,amazon-s3,Php,Amazon S3,我正在使用 getObjectUrl 获取我的webapp的s3可下载url。 我为整个桶启用了加速传输,但无论我如何配置它,我都看不到任何实际的速度差异 $bucket = 'bucketname'; $file = $_POST['file']; $client = new Aws\S3\S3Client([ 'version' => 'latest', 'region' => 'eu-central-1', 'credentials' => a

我正在使用

getObjectUrl
获取我的webapp的s3可下载url。 我为整个桶启用了加速传输,但无论我如何配置它,我都看不到任何实际的速度差异

$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,
  )
]);
我从中得到回报的url

$plainUrl = $client->getObjectUrl($bucket, $file);
这是:
https://bucketname.s3.eu-central-1.amazonaws.com/filename.ext

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

根据s3文档

通过将“@use\u accelerate\u endpoint”设置为true或false,可以启用或禁用单个操作。注意:在通过加速端点访问存储桶之前,必须在存储桶上启用S3加速

我使用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);

根据s3文档

通过将“@use\u accelerate\u endpoint”设置为true或false,可以启用或禁用单个操作。注意:在通过加速端点访问存储桶之前,必须在存储桶上启用S3加速

我使用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);

您不需要通过
端点
。结果URL应该包含
bucket name.s3 accelerate.amazonaws.com
,并且您的bucket名称中不能有任何点。您可以检查
createPresignedRequest
是否返回带有加速端点的URL。好的,谢谢。使用加速端点是否正确?我发现了3种不同的实现方式。我将尝试一个预签名的请求,看看这是否有帮助。createpresignedrequest没有返回加速的终结点。您不需要通过
终结点
。结果URL应该包含
bucket name.s3 accelerate.amazonaws.com
,并且您的bucket名称中不能有任何点。您可以检查
createPresignedRequest
是否返回带有加速端点的URL。好的,谢谢。使用加速端点是否正确?我发现了3种不同的实现方式。我将尝试一个预签名的请求,看看这是否有帮助。createpresignedrequest没有返回一个加速的端点。这是速度上的巨大差异!这就是速度上的差异!