翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS SDK for PHP バージョン 3 での S3 アクセスポイント ARN の使用
S3 では、S3 バケットと対話する新しい方法であるアクセスポイントが導入されました。アクセスポイントには、バケットに直接ではなく、一意のポリシーと設定を適用できます。AWS SDK for PHP では、バケット名を明示的に指定するのではなく、バケットフィールドでアクセスポイントの ARN を API オペレーションに使用できます。S3 アクセスポイントと ARN の仕組みの詳細については、こちらを参照してください 以下の例では、次の方法を示しています。
のすべてのサンプルコードAWS SDK for PHPは、 にあります GitHub
認証情報
サンプルコードを実行する前に、AWS の認証情報を設定します (認証情報 を参照)。AWS SDK for PHP からのインポート (基本的な使用法 を参照)。
インポート
require 'vendor/autoload.php'; use Aws\S3\S3Client;
Get Object
まず AWS リージョンとバージョンを指定する AWS.S3 クライアントサービスを作成します。次に、キーと Bucket
フィールドの S3 アクセスポイントの ARN を指定して getObject
メソッドを呼び出します。これにより、そのアクセスポイントに関連付けられたバケットからオブジェクトが取得されます。
サンプルコード
$s3 = new S3Client([ 'version' => 'latest', 'region' => 'us-west-2', ]); $result = $s3->getObject([ 'Bucket' => 'arn:aws:s3:us-west-2:123456789012:accesspoint:endpoint-name', 'Key' => 'MyKey' ]);
バケットにオブジェクトを配置する
まず AWS リージョンとバージョンを指定する AWS.S3 クライアントサービスを作成します。次に、必要なキー、本文やソースファイル、および Bucket
フィールドに S3 アクセスポイントの ARN を指定して putObject
メソッドを呼び出します。これにより、そのアクセスポイントに関連付けられたバケットにオブジェクトが格納されます。
サンプルコード
$s3 = new S3Client([ 'version' => 'latest', 'region' => 'us-west-2', ]); $result = $s3->putObject([ 'Bucket' => 'arn:aws:s3:us-west-2:123456789012:accesspoint:endpoint-name', 'Key' => 'MyKey', 'Body' => 'MyBody' ]);
クライアントリージョンの代わりに ARN リージョンを使用するように S3 クライアントを設定する
S3 クライアントオペレーションで S3 アクセスポイント の ARN を使用する場合、デフォルトでは、クライアントは ARN リージョンがクライアントリージョンと一致していることを確認し、一致していない場合は例外をスローします。この動作は、use_arn_region
設定オプションを true
に設定することで、クライアントリージョン上で ARN リージョンを受け入れるように変更できます。デフォルトでは、オプションは false
に設定されています。
サンプルコード
$s3 = new S3Client([ 'version' => 'latest', 'region' => 'us-west-2', 'use_arn_region' => true ]);
クライアントは、環境変数と Config ファイルオプションも次の優先順位でチェックします。
-
上記の例のような、
use_arn_region
クライアントオプション。 -
環境変数
AWS_S3_USE_ARN_REGION
export AWS_S3_USE_ARN_REGION=true
-
s3_use_arn_region
共有設定ファイルの config 変数 AWS (デフォルトでは~/.aws/config
にあります)。
[default] s3_use_arn_region = true