AWS PHP SDK を使用したマルチパートアップロード - Amazon Simple Storage Service

AWS PHP SDK を使用したマルチパートアップロード

大きなファイルは複数のパートに分割して Amazon S3 にアップロードできます。5 GB より大きいファイルに対しては、マルチパートアップロードを使用する必要があります。AWS SDK for PHP は、マルチパートアップロードを簡素化する MultipartUploader クラスを公開しています。

シンプルなマルチパートアップロードには、upload クラスの MultipartUploader メソッドが最適です。マルチパートアップロードを一時停止して再開する場合、アップロード中にパートサイズを変更する場合、またはデータのサイズが事前にわからない場合は、低レベルの PHP API を使用します。詳細については、「AWS PHP SDK を使用したマルチパートアップロード (低レベル API)」を参照してください。

マルチパートアップロードの詳細については、「マルチパートアップロード API を使用したオブジェクトのアップロード」を参照してください。サイズが 5 GB 未満のファイルのアップロードについては、「AWS SDK for PHP を使用したオブジェクトのアップロード」を参照してください。

高レベルのマルチパートアップロードを使用してファイルをアップロードする

このトピックでは、マルチパートファイルのアップロードの AWS SDK for PHP からの高レベルの Aws\S3\Model\MultipartUpload\UploadBuilder クラスを使用する方法について説明します。ここでは、既に AWS SDK for PHP の使用と PHP サンプルの実行 の説明が実行されていて、AWS SDK for PHP が正しくインストールされていることを前提としています。

以下の PHP 例では、ファイルを Amazon S3 バケットにアップロードしています。この例では、MultipartUploader オブジェクトのパラメータを設定する方法を示します。

PHP 例の実行については、このガイド内の「PHP サンプルの実行」を参照してください。

require 'vendor/autoload.php'; use Aws\Common\Exception\MultipartUploadException; use Aws\S3\MultipartUploader; use Aws\S3\S3Client; $bucket = '*** Your Bucket Name ***'; $keyname = '*** Your Object Key ***'; $s3 = new S3Client([ 'version' => 'latest', 'region' => 'us-east-1' ]); // Prepare the upload parameters. $uploader = new MultipartUploader($s3, '/path/to/large/file.zip', [ 'bucket' => $bucket, 'key' => $keyname ]); // Perform the upload. try { $result = $uploader->upload(); echo "Upload complete: {$result['ObjectURL']}" . PHP_EOL; } catch (MultipartUploadException $e) { echo $e->getMessage() . PHP_EOL; }

関連リソース