本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用第 3 AWS SDK for PHP 版設定 Amazon S3 儲存貯體
跨來源資源分享 (CORS) 會定義一種方式,讓載入單一個網域的用戶端 Web 應用程式,能與不同網域中的資源互動。透過 Amazon S3 中的 CORS 支援,您可以使用 Amazon S3 建置豐富的用戶端 Web 應用程式,並選擇性地允許跨來源存取 Amazon S3 資源。
如需將 CORS 組態與 Amazon S3 儲存貯體搭配使用的詳細資訊,請參閱跨來源資源共用 (CORS)。
下列範例示範如何:
-
使GetBucketCors用獲取存儲桶的 CORS 配置。
-
使PutBucketCors用設定值區的 CORS 組態。
所有的範例程式碼都可以AWS SDK for PHP在這裡取
登入資料
在執行範例程式碼之前,請依照中的說明設定您的AWS認證憑證。然後匯入AWS SDK for PHP,如中所述基本使用。
取得 CORS 設定
使用下列程式碼建立 PHP 檔案。首先,建立一個 AWS.S3 用戶端服務,然後呼叫 getBucketCors
方法,並指定具有您所需要 CORS 組態的儲存貯體。
唯一需要的參數,就是所選取儲存貯體的名稱。如果儲存貯體目前具有 CORS 組態,則 Amazon S3 會以 Cors Rules 物件的形式傳回該組態。
匯入
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()); }