好吧,所以我尝试了几种获取文件上传到我的S3帐户的方法。最后发现自己到了某个地方和BOOM--令人困惑的文档和奇怪的错误信息似乎与自己相矛盾。AWS PHP SDK将文件上传到S3令人困惑的错误
好了,开始与我没有使用作曲家之类的东西,我这样做的老式方法:正确
require '/path/to/aws-autoload.php';
现在这个负荷,我已经下调了自动加载,只使用普通课程和S3课程 - 不需要任何东西!
接下来我加载S3客户端和证书:
use Aws\S3\S3Client;
use Aws\Common\Credentials\Credentials;
现在代码启动魔法发生:
$file = '/path/to/' . $filename;
$credentials = new Credentials('KEY', 'SECRET KEY');
$s3 = S3Client::factory(array('credentials' => $credentials));
try{
$s3->putObject(array(
'Bucket' => 'sub.domain.com.s3.amazonaws.com',
'Body' => fopen($file, 'r'),
'ACL' => 'public-read',
));
} catch (S3Exception $e) {
$result = array(
'ok' => false,
'descr' => 'There was an error uploading the file to S3 : ' . $filename
);
}
的问题,我似乎有与“桶”本身。
当我格式化铲斗sub.domain.com我收到以下消息来自AWS API回:
AWS错误信息:使用您尝试访问的桶必须解决的问题指定的端点。请将所有未来请求发送到此端点:“sub.domain.com.s3.amazonaws.com”。
现在,当我改变 '桶' 来匹配上面,像这样:sub.domain.com.s3.amazonaws.com
我收到以下错误信息:
AWS错误消息:指定的存储桶不存在
我做错了什么?有什么缺失?不幸的是,AWS文档并不完整。 API目前似乎是自相矛盾的。我知道所有的密钥都是正确的,并且所有权限都是正确的。它从301 - 重定向到404 - 从自己的建议中找不到。
任何帮助/意见将不胜感激。我觉得我在这里有点圈子!
是不是只是作为一个例子的'sub.domain'部分?我认为你应该将这个价值改变为你首先命名的任何东西。 – Cyclonecode 2014-10-07 09:24:09
我已经这样做了,我在这里发布时将此设置为** sub.domain **,以使其更通用并且不会泄露我工作的网站。此外,** KEY **和** SECRET KEY **被设置为正确的值 – JustSteveKing 2014-10-07 09:27:07
您是否曾尝试使用'http://s3.amazonaws.com/'''等路径样式的URL来访问您的存储桶? –
Cyclonecode
2014-10-07 09:31:31