本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用第 3 版設定 Amazon S3 儲存貯體 AWS SDK for PHP
跨來源資源分享 (CORS) 會定義一種方式,讓載入單一個網域的用戶端 Web 應用程式,能與不同網域中的資源互動。透過 Amazon S3 中的 CORS 支援,您可以使用 Amazon S3 建置豐富的用戶端 Web 應用程式,並選擇性地允許跨來源存取您的 Amazon S3 資源。
如需搭配 Amazon S3 儲存貯體使用 CORS 組態的詳細資訊,請參閱跨來源資源共用 (CORS)。
下列範例示範如何:
-
使用 GetBucketCors 取得儲存貯體的 CORS 組態。
-
使用 PutBucketCors 設定儲存貯體的 CORS 組態。
您可以在 GitHub 上 AWS SDK for PHP 取得 的所有範例程式碼。 GitHub
登入資料
在執行範例程式碼之前,請先設定您的 AWS 登入資料,如中所述AWS 使用第 3 AWS SDK for PHP 版向 驗證。然後匯入 AWS SDK for PHP,如 中所述安裝第 3 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()); }