メニュー
Amazon Simple Storage Service
開発者ガイド (API バージョン 2006-03-01)

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

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

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

マルチパートアップロードの詳細については、「Multipart Upload 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 サンプルの実行」を参照してください。

<?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; }

関連リソース

このページの内容: