亚马逊网络服务-PHP到AWS S3的多部分上传总是失败


amazon web services - PHP to AWS S3 multipart upload always fails

尝试使用PHP SDK v2将7G文件上传到S3(PHP 5.5不可用(。小于5G的文件上传效果很好,但多部分上传从未奏效。它们总是在上传完成之前结束,没有任何消息或错误。

我有完全的S3访问权限。我尝试了很多不同的东西,但都无济于事。

代码没有什么特别之处:

$uploader = UploadBuilder::newInstance()
    ->setBucket($bucket_nm)
    ->setKey($key)
    ->setMinPartSize(100 * 1024 * 1024)
    ->setConcurrency(1)
    ->setSource($src_path)
    ->setClient($s3)
    ->build();
try {
    $uploader->getEventDispatcher()->addListener(
      'multipart_upload.after_part_upload',
      function($event) {
            $msg = $event['state']->count() . ' parts uploaded.';
            echo "$msg<br />";
            WriteToLog($msg);
      }
    );
    $uploader->upload();
    $msg = 'Upload complete.';
} catch (MultipartUploadException $e) {
    $uploader->abort();
    $msg = 'Upload failed. ' . $e->getMessage() . '.';
}
echo "$msg<br />";
WriteToLog($msg);

您需要应用这些try-catch来代替您的中止或上传过程

// Perform the upload. Abort the upload if something goes wrong
try {
$uploader->upload();
echo "Upload complete.'n";
} catch (MultipartUploadException $e) {
$uploader->abort();
echo "Upload failed.'n";
}