

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

# AWS SDK for PHP バージョン 3 での S3 アクセスポイント ARN の使用
<a name="s3-examples-access-point-arn"></a>

S3 では、S3 バケットと対話する新しい方法であるアクセスポイントが導入されました。アクセスポイントには、バケットに直接ではなく、一意のポリシーと設定を適用できます。AWS SDK for PHP では、バケット名を明示的に指定するのではなく、バケットフィールドでアクセスポイントの ARN を API オペレーションに使用できます。S3 アクセスポイントと ARN の仕組みの詳細については、[こちら](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html)を参照してください 以下の例では、次の方法を示しています。
+ [GetObject](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#getobject) をアクセスポイントの ARN とともに使用して、バケットからオブジェクトを取得します。
+ バケットにオブジェクトを追加するには、アクセスポイントの ARN とともに [PutObject](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#putobject) を使用します。
+ クライアントリージョンの代わりに ARN リージョンを使用するように S3 クライアントを設定します。

AWS SDK for PHP 用のすべてのサンプルコードは [GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code) で入手できます。

## 認証情報
<a name="examplecredentials"></a>

サンプルコードを実行する前に、AWS の認証情報を設定します ([AWS SDK for PHP バージョン 3 AWS を使用した での認証](credentials.md) を参照)。AWS SDK for PHP からのインポート ([AWS SDK for PHP バージョン 3 のインストール](getting-started_installation.md) を参照)。

 **インポート**。

```
require 'vendor/autoload.php';

use Aws\S3\S3Client;
```

## Get Object
<a name="get-object"></a>

まず AWS リージョンとバージョンを指定する AWS.S3 クライアントサービスを作成します。次に、キーと `getObject` フィールドの S3 アクセスポイントの ARN を指定して `Bucket` メソッドを呼び出します。これにより、そのアクセスポイントに関連付けられたバケットからオブジェクトが取得されます。

 **サンプルコード** 

```
$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'
]);
```

## バケットにオブジェクトを配置する
<a name="put-an-object-in-a-bucket"></a>

まず AWS リージョンとバージョンを指定する AWS.S3 クライアントサービスを作成します。次に、必要なキー、本文やソースファイル、および `putObject` フィールドに S3 アクセスポイントの ARN を指定して `Bucket` メソッドを呼び出します。これにより、そのアクセスポイントに関連付けられたバケットにオブジェクトが格納されます。

 **サンプルコード** 

```
$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 クライアントを設定する
<a name="configure-the-s3-client-to-use-the-arn-region-instead-of-the-client-region"></a>

S3 クライアントオペレーションで S3 アクセスポイント の ARN を使用する場合、デフォルトでは、クライアントは ARN リージョンがクライアントリージョンと一致していることを確認し、一致していない場合は例外をスローします。この動作は、`use_arn_region` 設定オプションを `true` に設定することで、クライアントリージョン上で ARN リージョンを受け入れるように変更できます。デフォルトでは、オプションは `false` に設定されています。

 **サンプルコード** 

```
$s3 = new S3Client([
    'version'        => 'latest',
    'region'         => 'us-west-2',
    'use_arn_region' => true
]);
```

クライアントは、環境変数と Config ファイルオプションも次の優先順位でチェックします。

1. 上記の例のような、`use_arn_region` クライアントオプション。

1. 環境変数 `AWS_S3_USE_ARN_REGION` 

```
export AWS_S3_USE_ARN_REGION=true
```

1. `s3_use_arn_region` 共有設定ファイルの config 変数 AWS (デフォルトでは `~/.aws/config` にあります)。

```
[default]
s3_use_arn_region = true
```