这让我疯狂了好几天,我知道我错过了简单的东西。我一直在尝试更新CORS来创建我使用PHP SDK即时创建的存储桶。通过PHP SDK为AWS S3创建CORS规则
这就是我试图从我找到的各种教程中破解出来的东西(我不确定的一件事是发送多个AllowedMethods的首选方法)。
$result = $s3Client->putBucketCors(array(
'Bucket' => $bucket,
'CORSConfiguration' => array(
array(
'AllowedOrigins' => array('AllowedOrigin' => '*'),
'AllowedMethods' => array('AllowedMethods' => 'POST'),
'AllowedMethods' => array('AllowedMethods' => 'GET'),
'AllowedMethods' => array('AllowedMethods' => 'PUT'),
'MaxAgeSeconds' => array('MaxAgeSeconds' => '3000'),
'AllowedHeader' => array('AllowedHeader' => '*')
)
)
));
上述返回以下错误:
致命错误:在验证规定的PutBucketCors操作的输入未捕获的异常“InvalidArgumentException”与消息“找到1个错误:[CORSConfiguration]必须关联数组。
我试图使用信息从这个页面的帮助,但我知道这是过时的:http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.S3.S3Client.html#_putBucketCors
我验证过的桶存在和创建,通过AWS控制台。任何帮助将不胜感激。谢谢!
编辑:我能够将我的CORS从现有的桶中取出,这就是它给了我的东西。仍在试图弄清楚如何设置我的阵列创建:
data:Aws\Result:private] => Array (
[CORSRules] => Array ([0] =>
Array ([AllowedHeaders] => Array ([0] => *)
[AllowedMethods] => Array ([0] => GET [1] => POST [2] => PUT)
[AllowedOrigins] => Array ([0] => *)[
MaxAgeSeconds] => 3000))
在您共享的文档,它说'CORSRules'不'CORSConfiguration'没你知道?或者因为文档不是最新的? – FZE
我注意到它在文档中有所不同。我找不到最新版本的PHP SDK的工作示例。我使用了CORSConfiguration,因为当我尝试使用CORSRules时,它一直在向我抛出错误:致命错误:Uncaught异常'InvalidArgumentException'带有消息'验证为PutBucketCors操作提供的输入时发现1错误:[CORSConfiguration]丢失并且是必需参数' –