我正在尝试使用Laravels文件系统从Amazon S3上传/检索文件。
我已经设置了一个Amazon S3帐户,并使用IAM创建了一个新用户。我给用户的策略是AmazonS3FullAccess
。我已经生成了密钥,并复制了访问和秘密密钥。
我已经将密钥添加到文件系统配置以及区域Frankfurt
和我的桶名。我还将默认磁盘设置为s3
。
当我尝试简单地将文件上传到S3
磁盘时,我得到一个错误。
's3' => [
'driver' => 's3',
'key' => env('S3_KEY'),
'secret' => env('S3_SECRET'),
'region' => env('S3_REGION'),
'bucket' => env('S3_BUCKET'),
],
Php: Route::get('s3', function() {
Storage::put('myfile.txt' , 'Test File');
});
错误:Error executing "ListObjects" on "https://s3.frankfurt.amazonaws.com/bucketnamehere?prefix=myfile.txt%2F&max-keys=1&encoding-type=url"; AWS HTTP error: Error creating resource: [message] fopen(https://s3.frankfurt.amazonaws.com/bucketnamehere?prefix=myfile.txt%2F&max-keys=1&encoding-type=url): failed to open stream: Connection refused
[file] /var/www/ProjectNameHere-Events/vendor/guzzlehttp/guzzle/src/Handler/StreamHandler.php
[line] 312
我从HTTP请求中注意到两点,您需要在.env
S3_REGION=eu-central-1
S3_BUCKET=CORRECT_BUCKET_NAME
我从端点注意到桶名不正确,除非您为了安全更改了桶名