如何在标准 - 不频繁访问中上传大文件?
我的代码:
require('aws/aws-autoloader.php');
use AwsS3S3Client;
use AwsS3MultipartUploader;
$client = S3Client::factory(array(
'version' => 'latest',
'region' => 'us-east-1',
'credentials' => array(
'key' => $key,
'secret' => $secret,
),
));
$uploader = new MultipartUploader($client, $filename, [
'bucket' => $bucket,
'key' => $filename,
'part_size' => 1073741824,
]);
$uploader->upload();
文件上传正常,但在标准模式下,我想以不频繁访问上传。
似乎有一个回调钩子¹,您需要使用它来设置附加选项,例如存储类。
$uploader = new MultipartUploader($client, $filename, [
'bucket' => $bucket,
'key' => $filename,
'before_initiate' => function (AwsCommand $command) {
// $command is a CreateMultipartUpload operation
$command['StorageClass'] = 'STANDARD_IA';
},
'part_size' => 1073741824,
]);
来源:
- https://docs.aws.amazon.com/aws-sdk-php/v3/guide/service/s3-multipart-upload.html
- http://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#createmultipartupload
¹ 回调钩子是我刚刚编造的术语,也可能不是它的名字,但它似乎描述了这种机制。我不是PHP专家。