使用 Amazon SDK for PHP 版本 3 来配置 Amazon S3 存储桶 - Amazon SDK for PHP
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Amazon SDK for PHP 版本 3 来配置 Amazon S3 存储桶

跨源资源共享 (CORS) 定义了在一个域中加载的客户端 Web 应用程序与另一个域中的资源交互的方式。借助 Amazon S3 中的 CORS 支持,您可以使用 Amazon S3 来构建各种富客户端 Web 应用程序,并选择性地允许跨源访问您的 Amazon S3 资源。

有关将 CORS 配置用于 Amazon S3 存储桶的更多信息,请参阅跨源资源共享 (CORS)

以下示例演示如何:

的所有示例代码都可以在此Amazon SDK for PHP处找到 GitHub

凭证

运行示例代码之前,请配置您的 Amazon 凭证,如 凭证 中所述。然后导入 Amazon 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()); }