使用Laravel 5.1上传文件到S3失败。

3

我正在使用 Laravel 和它的文件系统 API 尝试上传一些文件到 S3。

但是我遇到了以下错误:

S3Exception in WrappedHttpHandler.php line 159:
Error executing "PutObject" on "https://s3..amazonaws.com/example-bucket/433922_1448096894943.png"; AWS HTTP error: cURL error 6: Could not resolve host: s3.global.amazonaws.com (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

这是我的/config/filesystems.php文件中的设置:

    's3' => [
        'driver' => 's3',
        'key'    => 'apiKey',
        'secret' => 'secretApiKey',
        'region' => 'global',
        'bucket' => 'example-bucket',
    ], 

正如错误提示所述,文件系统API无法解析以下域名。
s3.global.amazonaws.com

这里的“global”部分代表地区,但据我所知,S3不再需要指定地区。

我认为实际的域名应该像这样:

example-bucket.s3.amazonaws.com/

这是我正在使用的代码来调用文件系统API

Storage::disk('s3')->put('new-name.png', file_get_contents( 'path/to/file'))

s3.global.amazonaws.com 存在并解析为一个 IP 地址。有可能您的服务器上没有列出用于解析域名的 DNS 服务器。 - Ben Swinburne
我刚刚尝试在我的个人笔记本电脑和服务器上解析 s3.global.amazonaws.com,但都没有解析成功 : (。我还尝试了 s3.us-east.amazonaws.com,我认为这是一个有效的区域,但也无法解析。 - Petar Vasilev
刚刚尝试了s3.us-east-1.amazonaws.com,它已经解析成功了 :) - Petar Vasilev
1个回答

1

我需要设置正确的S3区域,对于我的情况来说是:欧洲(爱尔兰)(eu-west-1),然后一切开始正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接