使用putObject命令到别名桶

时间:2013-08-16 12:23:30

标签: php amazon-web-services

我有一个脚本可以将文件完美地上传到存储桶中。但是,一个特定的存储桶被赋予了一个cname,因此可以直接访问它,显然它已经使用CloudFront分配了它。

我不是这个领域的专家,但基本上,不是通过以下方式访问存储桶: http://mybucket.mysite.com.s3.amazonaws.com/thing.txt,它允许您通过以下方式访问它: http://mybucket.mysite.com/thing.txt

它通过它的外观执行put很好,当我对回调做出响应时,它说它已经完成但是数组中的最后一个元素交换了桶和端点,所以看起来像这样:{ {3}}

但是,当我使用任何其他存储桶时,它会正确上传并返回正确的ObjectURL。

在google和这个网站上进行搜索后,我似乎无法找到解决方案,所以任何帮助都会变得神奇。

我正在使用旧版本的AWS PHP 2 sdk,目前使用2.2.1。

编辑:更奇怪的是,当我通过isValidBucketName方法传递存储桶时,它返回true。

1 个答案:

答案 0 :(得分:0)

以防万一其他人遇到过这个问题,问题是当执行put时,SDK会自动假设您正在尝试连接到美国地区的存储桶。因此我需要指定存储区所在的区域,在我的情况下为EU_WEST_1,因此在设置配置数组时,请确保提供此值,例如

$config = array(
    'key' => 'your-key'
,   'secret' => 'your-secret'
,   'region' => Region::EU_WEST_1
);

确保在课程中包含Aws \ Common \ Enum \ Region。