首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 8和Digitalocean spaces存储上传

Laravel 8和Digitalocean spaces存储上传
EN

Stack Overflow用户
提问于 2021-10-02 21:57:37
回答 2查看 1K关注 0票数 1

是否有人成功上传到laravel 8的Digitalocean spaces

这是我的作曲家

代码语言:javascript
复制
"laravel/framework": "^8.54",
"league/flysystem-aws-s3-v3": "^1.0",

在filesystems.php中

代码语言:javascript
复制
'spaces' => [
   'driver' => 's3',
   'key' => env('SPACES_ACCESS_KEY_ID', '===AAACESS KEY==='),
   'secret' => env('SPACES_SECRET_ACCESS_KEY', '===BBBSECRECT KEY==='),
   'region' => env('SPACES_DEFAULT_REGION', 'sgp1'),
   'bucket' => env('SPACES_BUCKET', 'laravel-spaces'),
   'url' => env('SPACES_URL', 'https://laravel-spaces.sgp1.cdn.digitaloceanspaces.com'),
   'endpoint' => env('SPACES_ENDPOINT', 'https://sgp1.digitaloceanspaces.com')
],

Tinker上传测试

代码语言:javascript
复制
$path = 'thumb.png';
$file = Storage::disk('spaces')->put($path, @file_get_contents(public_path('images/logo.png')));

错误

代码语言:javascript
复制
Aws\S3\Exception\S3Exception with message 'Error executing "PutObject" on "https://laravel-spaces.s3.sgp1.amazonaws.com/thumb.png"; AWS HTTP error: cURL error 6: Could not resolve: laravel-spaces.s3.sgp1.amazonaws.com (Domain name not found) (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://laravel-spaces.s3.sgp1.amazonaws.com/thumb.png'
*** Execution finished ***

为什么要将s3和amazonaws.com附加到url

以及如何解决这个问题

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2021-10-05 09:56:05

感谢大家的帮助。我解决了问题,问题由.env文件配置错误。

这是正确的配置

代码语言:javascript
复制
SPACES_ACCESS_KEY_ID=AAAAA
SPACES_SECRET_ACCESS_KEY=BBBB
SPACES_DEFAULT_REGION=sgp1
SPACES_BUCKET=mybucket
SPACES_ENDPOINT=https://mybucket.sgp1.digitaloceanspaces.com
SPACES_URL=https://mybucket.sgp1.cdn.digitaloceanspaces.com

和配置

代码语言:javascript
复制
'spaces' => [
  'driver' => 's3',
  'key' => env('SPACES_ACCESS_KEY_ID'),
  'secret' => env('SPACES_SECRET_ACCESS_KEY'),
  'region' => env('SPACES_DEFAULT_REGION'),
  'bucket' => env('SPACES_BUCKET'),
  'url' => env('SPACES_URL'),
  'endpoint' => env('SPACES_ENDPOINT'),
  'bucket_endpoint' => true,
  'visibility' => 'public',
],
票数 0
EN

Stack Overflow用户

发布于 2021-10-04 16:42:50

您的错误准确地告诉了您问题所在

代码语言:javascript
复制
Aws\S3\Exception\S3Exception with message 'Error executing "PutObject" on "https://laravel-spaces.s3.sgp1.amazonaws.com/thumb.png"; AWS HTTP error: cURL error 6: Could not resolve: laravel-spaces.s3.sgp1.amazonaws.com (Domain name not found) (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://laravel-spaces.s3.sgp1.amazonaws.com/thumb.png'
*** Execution finished ***

它不能解析sgp1.amazonaws.com -这意味着你的ENV文件中缺少了一些东西。如果没有看到env文件,我不能告诉你。

话虽如此,我明白您在filesystems.php中想要做的事情--但是无论您将回退设置为什么,都应该在ENV中设置所有变量

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69420558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档