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