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

AWS SDK for PHP を使用したオブジェクトのアップロード

このトピックでは、AWS SDK for PHP のクラスを使用して、5 GB までのサイズのオブジェクトをアップロードする手順を示します。5 GB を超える大容量ファイルの場合は、マルチパートアップロード API を使用する必要があります。詳細については、「Multipart Upload API を使用したオブジェクトのアップロード」を参照してください。

注記

このトピックでは、既に AWS SDK for PHP の使用と PHP サンプルの実行 の説明が実行されていて、AWS SDK for PHP が正しくインストールされていることを前提としています。

オブジェクトのアップロード

1

Amazon S3 クライアントのインスタンスを Aws\S3\S3Client クラスの factory() メソッドを使用して作成します。

2

Aws\S3\S3Client::putObject() メソッドを実行します。array パラメーターの必須キー、BucketKey に、バケット名とキー名を指定する必要があります。

ファイルをアップロードする場合、ファイル名を指定するには、array パラメーターを SourceFile キーと共に追加します。オプションのオブジェクトメタデータを array パラメーターを使って提供することもできます。

以下の PHP コード例は、SourceFile メソッドの array パラメーターの putObject キーに指定したファイルをアップロードすることで、オブジェクトを実際に作成する方法を示しています。

Copy
use Aws\S3\S3Client; $bucket = '*** Your Bucket Name ***'; $keyname = '*** Your Object Key ***'; // $filepath should be absolute path to a file on disk $filepath = '*** Your File Path ***'; // Instantiate the client. $s3 = S3Client::factory(); // Upload a file. $result = $s3->putObject(array( 'Bucket' => $bucket, 'Key' => $keyname, 'SourceFile' => $filepath, 'ContentType' => 'text/plain', 'ACL' => 'public-read', 'StorageClass' => 'REDUCED_REDUNDANCY', 'Metadata' => array( 'param1' => 'value 1', 'param2' => 'value 2' ) )); echo $result['ObjectURL'];

ファイル名を指定する代わりに、オブジェクトデータをインラインで提供できます。その場合は、次の PHP サンプルコードに示すとおり、array パラメーターと共に Body キーを指定します。

Copy
use Aws\S3\S3Client; $bucket = '*** Your Bucket Name ***'; $keyname = '*** Your Object Key ***'; // Instantiate the client. $s3 = S3Client::factory(); // Upload data. $result = $s3->putObject(array( 'Bucket' => $bucket, 'Key' => $keyname, 'Body' => 'Hello, world!' )); echo $result['ObjectURL'];

例 (データをアップロードして Amazon S3 バケットにオブジェクトを作成)

以下の PHP コード例では、putObject() メソッドを使用してデータをアップロードすることで、指定されたバケットにオブジェクトを作成しています。 PHP 例の実行については、このガイド内の「PHP サンプルの実行」を参照してください。

Copy
<?php // Include the AWS SDK using the Composer autoloader. require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\S3\Exception\S3Exception; $bucket = '*** Your Bucket Name ***'; $keyname = '*** Your Object Key ***'; // Instantiate the client. $s3 = S3Client::factory(); try { // Upload data. $result = $s3->putObject(array( 'Bucket' => $bucket, 'Key' => $keyname, 'Body' => 'Hello, world!', 'ACL' => 'public-read' )); // Print the URL to the object. echo $result['ObjectURL'] . "\n"; } catch (S3Exception $e) { echo $e->getMessage() . "\n"; }

関連リソース

このページの内容: