AWS SDK for PHP バージョン 3 による Amazon S3 バケットの設定 - AWS SDK for PHP

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

AWS SDK for PHP バージョン 3 による Amazon S3 バケットの設定

Cross−Origin Resource Sharing (CORS) は、特定のドメインにロードされたクライアントウェブアプリケーションが異なるドメイン内のリソースと通信する方法を定義します。Amazon S3 の CORS のサポートによって、Amazon S3 でリッチなクライアント側ウェブアプリケーションを構築し、Amazon S3 リソースへのクロスオリジンアクセスを選択的に許可できます。

Amazon S3 バケットで CORS 設定を使用する方法の詳細については、「Cross-Origin Resource Sharing (CORS)」を参照してください。

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

  • を使用してバケットの CORS 設定を取得しますGetBucketCors

  • を使用してバケットの CORS 設定を設定しますPutBucketCors

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

認証情報

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

CORS 設定を取得する

次のコードのように、PHP ファイルを作成します。AWS.S3 クライアントサービスを作成してから、getBucketCors メソッドを呼び出して、CORS 設定を取得するバケットを指定します。

必要なパラメーターは、選択したバケットの名前のみです。そのバケットに CORS 設定が存在する場合は、その設定が Amazon S3 によって CORSRules オブジェクトとして返されます。

インポート

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

サンプルコード

$client = new S3Client([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2006-03-01' ]); try { $result = $client->getBucketCors([ 'Bucket' => $bucketName, // REQUIRED ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

CORS 設定を設定する

次のコードのように、PHP ファイルを作成します。AWS.S3 クライアントサービスを作成してから、putBucketCors メソッドを呼び出して、CORS 設定を設定するバケットを指定し、CORSConfiguration を CORSRules JSON オブジェクトとして指定します。

インポート

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

サンプルコード

$client = new S3Client([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2006-03-01' ]); try { $result = $client->putBucketCors([ 'Bucket' => $bucketName, // REQUIRED 'CORSConfiguration' => [ // REQUIRED 'CORSRules' => [ // REQUIRED [ 'AllowedHeaders' => ['Authorization'], 'AllowedMethods' => ['POST', 'GET', 'PUT'], // REQUIRED 'AllowedOrigins' => ['*'], // REQUIRED 'ExposeHeaders' => [], 'MaxAgeSeconds' => 3000 ], ], ] ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }