1

关于这里出了什么问题的任何想法?我完全被难住了。

代码

我在本地开发服务器(带有 Laravel Valet 的 MacOS)上运行以下代码:

$file = $request->file('uploaded_file');
$folder = '001-testing';
$filename = '12345.'.$file->extension();
$s3_path = $file->storeAs($folder, $filename, 's3');

结果

504 Gateway Time-out

不是一个非常有用的错误!

.env

AWS_ACCESS_KEY_ID=*****
AWS_SECRET_ACCESS_KEY=*****
AWS_DEFAULT_REGION=us-west-2
AWS_BUCKET=*****
AWS_ENDPOINT=https://s3.us-west-2.amazonaws.com
AWS_URL=https://s3.us-west-2.amazonaws.com

我不确定 ENDPOINT 和 URL - 我有这些权利吗?这些是以前 Laravel 版本的新变量。

作曲家.json

 "require": {
        "php": "^7.2.5",
        "aws/aws-sdk-php": "^3.147",
        "fideloper/proxy": "^4.2",
        "fruitcake/laravel-cors": "^1.0",
        "guzzlehttp/guzzle": "^6.3",
        "laravel/framework": "^7.0",
        "laravel/tinker": "^2.0",
        "league/flysystem-aws-s3-v3": "^1.0",
        "league/flysystem-cached-adapter": "^1.1"
4

1 回答 1

1

默认情况下,您无法使用 http 协议访问 S3 存储桶,如果需要 http,请将您的存储桶配置为网站端点并允许公共访问。

如何使用 S3 存储桶进行静态虚拟主机托管

如果不需要 http/https,请将您的 AWS_ENDPOINT 和 AWS_URL 变量切换到 s3:// 协议并将它们定向到您的特定存储桶

于 2020-08-07T20:24:57.307 回答