本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 AWS SDK for PHP 版本 3 来配置 Amazon S3 存储桶
跨源资源共享 (CORS) 定义了在一个域中加载的客户端 Web 应用程序与另一个域中的资源交互的方式。借助 Amazon S3 中的 CORS 支持,您可以使用 Amazon S3 来构建各种富客户端 Web 应用程序,并选择性地允许跨源访问您的 Amazon S3 资源。
有关将 CORS 配置用于 Amazon S3 存储桶的更多信息,请参阅跨源资源共享 (CORS)。
以下示例演示如何:
-
使用GetBucketCors获取存储桶的 CORS 配置。
-
使用PutBucketCors设置存储桶的 CORS 配置。
的所有示例代码都可以在此AWS SDK for PHP处找到 GitHub
凭证
运行示例代码之前,请配置您的 AWS 凭证,如 凭证 中所述。然后导入 AWS SDK for PHP,如 基本用法 中所述。
获取 CORS 配置
使用以下代码创建 PHP 文件。首先创建一个 AWS.S3 客户端服务,然后调用 getBucketCors
方法并指定使用所需 CORS 配置的存储桶。
需要的唯一参数是所选存储桶的名称。如果存储桶当前具有 CORS 配置,该配置将作为 CORSRules 对象由 Amazon S3 返回。
导入
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 配置的存储桶,并将 CORS 配置设置为 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()); }