AWS SDK for PHP バージョン 3 での Amazon S3 バケットの作成と使用 - AWS SDK for PHP

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS SDK for PHP バージョン 3 での Amazon S3 バケットの作成と使用

以下の例では、次の方法を示しています。

  • を使用して、リクエストの認証済み送信者が所有するバケットのリストを返しますListBuckets

  • を使用して新しいバケットを作成しますCreateBucket

  • を使用してバケットにオブジェクトを追加しますPutObject

のすべてのサンプルコードAWS SDK for PHPは、 にあります GitHub

認証情報

サンプルコードを実行する前に、AWS の認証情報を設定します (認証情報 を参照)。AWS SDK for PHP からのインポート (基本的な使用法 を参照)。

インポート

require 'vendor/autoload.php'; use Aws\S3\S3Client;

バケットの一覧表示

次のコードのように、PHP ファイルを作成します。まず AWS リージョンとバージョンを指定する AWS.S3 クライアントサービスを作成します。次に listBuckets メソッドを呼び出します。これはリクエストの送信者が所有しているすべての Amazon S3 バケットをバケット配列として返します。

サンプルコード

$s3Client = new S3Client([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2006-03-01' ]); //Listing all S3 Bucket $buckets = $s3Client->listBuckets(); foreach ($buckets['Buckets'] as $bucket) { echo $bucket['Name'] . "\n"; }

バケットを作成する

次のコードのように、PHP ファイルを作成します。まず AWS リージョンとバージョンを指定する AWS.S3 クライアントサービスを作成します。次に、createBucket メソッドを、パラメーターの配列を使用して呼び出します。唯一の必須のフィールドはキー 'Bucket' で、作成するバケット名の文字列値を指定します。ただし、CreateBucketConfiguration「」フィールドを使用してAWSリージョンを指定できます。成功した場合、このメソッドはバケットの「Location」を返します。

サンプルコード

function createBucket($s3Client, $bucketName) { try { $result = $s3Client->createBucket([ 'Bucket' => $bucketName, ]); return 'The bucket\'s location is: ' . $result['Location'] . '. ' . 'The bucket\'s effective URI is: ' . $result['@metadata']['effectiveUri']; } catch (AwsException $e) { return 'Error: ' . $e->getAwsErrorMessage(); } } function createTheBucket() { $s3Client = new S3Client([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2006-03-01' ]); echo createBucket($s3Client, 'my-bucket'); } // Uncomment the following line to run this code in an AWS account. // createTheBucket();

バケットにオブジェクトを配置する

新しいバケットにファイルを追加するには、次のコードを使用して PHP ファイルを作成します。

コマンドラインでこのファイルを実行し、ファイルをアップロードするバケットの名前を文字列、続いてアップロードするファイルの完全なファイルパスを渡します。

サンプルコード

$USAGE = "\n" . "To run this example, supply the name of an S3 bucket and a file to\n" . "upload to it.\n" . "\n" . "Ex: php PutObject.php <bucketname> <filename>\n"; if (count($argv) <= 2) { echo $USAGE; exit(); } $bucket = $argv[1]; $file_Path = $argv[2]; $key = basename($argv[2]); try { //Create a S3Client $s3Client = new S3Client([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2006-03-01' ]); $result = $s3Client->putObject([ 'Bucket' => $bucket, 'Key' => $key, 'SourceFile' => $file_Path, ]); } catch (S3Exception $e) { echo $e->getMessage() . "\n"; }