使用 S3 存取點 ARN 第 3 AWS SDK for PHP 版 - AWS SDK for PHP

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

使用 S3 存取點 ARN 第 3 AWS SDK for PHP 版

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

  • GetObject配存取點 ARN 使用,即可從值區擷取物件。

  • PutObject配存取點 ARN 使用,將物件新增至值區。

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

所有的範例程式碼都可以AWS SDK for PHP在這裡取得 GitHub。

登入資料

在執行範例程式碼之前,請依照中的說明設定您的AWS認證憑證。然後匯入AWS SDK for PHP,如中所述基本使用

匯入

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