使用 S3 存取點 ARNs第 3 適用於 PHP 的 AWS SDK 版 - 適用於 PHP 的 AWS SDK

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 S3 存取點 ARNs第 3 適用於 PHP 的 AWS SDK 版

S3 導入存取點,這是一種與 S3 儲存貯體互動的新方式。存取點可以套用唯一的政策和組態,而不是直接套用至儲存貯體。 適用於 PHP 的 AWS SDK 可讓您使用儲存貯體欄位中ARNs 進行 API 操作,而不是明確指定儲存貯體名稱。如需 S3 存取點和 ARNs運作方式的詳細資訊,請參閱此處。下列範例示範如何:

  • GetObject 與存取點 ARN 搭配使用,從儲存貯體擷取物件。

  • PuTOObject 與存取點 ARN 搭配使用,將物件新增至儲存貯體。

  • 將 S3 用戶端設定為使用 ARN 區域,而不是用戶端區域。

GitHub 上 適用於 PHP 的 AWS SDK 提供 的所有範例程式碼。 GitHub

登入資料

執行範例程式碼之前,請先設定您的 AWS 登入資料,如 中所述登入資料。然後匯入 適用於 PHP 的 AWS SDK,如 中所述基本使用

匯入

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

取得物件

首先建立指定 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 用戶端服務。然後使 putObject 用所需的金鑰、主體或來源檔案和 Bucket 欄位中的 S3 存取點 ARN 呼叫該方法,這會將物件放入與該存取點關聯的儲存貯體中。

範例程式碼

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

將 S3 用戶端設定為使用 ARN 區域而不是用戶端區域

在 S3 用戶端操作中使用 S3 存取點 ARN 時,預設情況下,用戶端將確保 ARN 區域與用戶端區域相符,如果不相符,則擲回例外狀況。您可以將 use_arn_region 組態選項設定為 true,將此行為變更為透過用戶端區域接受 ARN 區域。依預設,選項會設定為 false

範例程式碼

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

用戶端還將按照以下優先順序檢查環境變數和組態檔案選項:

  1. 用戶端選項 use_arn_region,如上例所示。

  2. 環境變數 AWS_S3_USE_ARN_REGION

export AWS_S3_USE_ARN_REGION=true
  1. AWS 共用組態檔案中s3_use_arn_region的組態變數 (預設為 )~/.aws/config

[default] s3_use_arn_region = true