Опитвам се да кача 30 GB файл в Amazon S3 с помощта на AWS PHP SDK.
require('../vendor/autoload.php');
use Aws\S3\MultipartUploader;
use Aws\Exception\MultipartUploadException;
$client = new Aws\S3\S3Client([
'version' => 'latest',
'region' => 'us-east-1'
]);
$bucket_name = 'Server3-27-SEP-2015';
$file_name = 'S3_www_1443369605.zip';
$uploader = new MultipartUploader($client, $file_name, [
'bucket' => $bucket_name,
'key' => $file_name,
'part_size' => '5368709120' // 5GB
]);
try {
$result = $uploader->upload();
echo "Upload complete \n";
} catch (MultipartUploadException $e) {
echo "Upload error: " . $e->getMessage() . "\n";
}
Работи за файлове до 7 GB. Когато качвам файла от 30 GB, получавам следната грешка, след като скриптът е работил около 2 часа:
Amazon S3 ви позволява да качвате големи файлове в множество части и трябва да използвате качване от няколко части за файлове, по-големи от 5 GB. AWS SDK за PHP разкрива класа ws\S3\Model\MultipartUpload\UploadBuilder от високо ниво, който опростява многочастните качвания. Класът Aws\S3\Model\MultipartUpload\UploadBuilder се използва най-добре за просто качване на няколко части.