我曾在一些較舊的 Laravel 應用程式 (5.x) 上作業,這些應用程式已將上傳映射到具有憑據的 AWS S3 磁盤,例如:
's3' => [
'driver' => 's3',
'key' => env('AWS_KEY'),
'secret' => env('AWS_SECRET'),
'region' => env('AWS_REGION'),
'bucket' => env('AWS_BUCKET'),
],
在 Laravel 8 中,這些鍵已被重命名:
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'bucket' => env('AWS_BUCKET'),
'url' => env('AWS_URL'),
'endpoint' => env('AWS_ENDPOINT'),
],
我試圖以類似的方式映射我的值(因為名稱沒有太大變化)。我嘗試設定example-uploads-int-s3-bucket.s3.amazonaws.com和example-uploads-int-s3-bucket作為存盤桶(存盤桶名稱是example-uploads-int-s3-bucket),但出現此錯誤:
{"message":"Error executing \"PutObject\" on \"/example-uploads-int-s3-bucket.s3.amazonaws.com/logos/Qwsx9aUpMDkF9dEvxfN3ov9yYDDqmqKZD63m7wug.png\"; AWS HTTP error: cURL error 3: (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for /example-uploads-int-s3-bucket.s3.amazonaws.com/logos/Qwsx9aUpMDkF9dEvxfN3ov9yYDDqmqKZD63m7wug.png","context":{"userId":1,"exception":{"class":"Aws\\S3\\Exception\\S3Exception","message":"Error executing \"PutObject\" on \"/example-uploads-int-s3-bucket.s3.amazonaws.com/logos/Qwsx9aUpMDkF9dEvxfN3ov9yYDDqmqKZD63m7wug.png\"; AWS HTTP error: cURL error 3: (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for /example-uploads-int-s3-bucket.s3.amazonaws.com/logos/Qwsx9aUpMDkF9dEvxfN3ov9yYDDqmqKZD63m7wug.png","code":0,"file":"/var/www/example-site/src/vendor/aws/aws-sdk-php/src/WrappedHttpHandler.php:195","previous":{"class":"GuzzleHttp\\Exception\\RequestException","message":"cURL error 3: (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for /example-uploads-int-s3-bucket.s3.amazonaws.com/logos/Qwsx9aUpMDkF9dEvxfN3ov9yYDDqmqKZD63m7wug.png","code":0,"file":"/var/www/example/src/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:211"}}},"level":400,"level_name":"ERROR","channel":"int","datetime":"2021-11-03T02:43:31.550758 00:00","extra":{}}
我正在查看 Laravel 檔案(以及其他廣泛的谷歌搜索),但沒有發現任何提示我可能做錯了什么。任何人都可以提供任何見解嗎?
uj5u.com熱心網友回復:
我終于想通了!我不得不深入研究供應商庫代碼,但現在我知道如何配置它:
首先,您可以看到端點是如何生成的:
Illuminate\Filessystem:put() ->AWSS3Adapter::upload() -> AWS\S3\ObjectUploader::upload() -> AWS\S3\ObjectUploader::promise() -> AWS\Api\Serializer::buildEndpoint()
其次,對于實際修復:
AWS_BUCKET=example-uploads-int-s3-bucket
AWS_URL=
AWS_ENDPOINT=https://s3.amazonaws.com
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/351547.html
標籤:拉拉维尔 亚马逊网络服务 亚马逊-s3 laravel-8
上一篇:s3fs和fsspec版本的作業組合是什么?匯入錯誤:無法從“fsspec.asyn”匯入名稱“maybe_sync”
下一篇:圣杯部署S3事件引發錯誤
