如何使用Laravel Storage管理DO Spaces数据及配置报错咨询
解决方案
- 问题核心出在两处配置缺失和格式错误,按以下步骤修改即可:
- 修正环境变量的Endpoint格式
DO Spaces要求Endpoint必须携带HTTPS协议头,将.env文件中的对应配置修改为:DO_SPACES_ENDPOINT=https://ams3.digitaloceanspaces.com - 补充filesystems配置项
Laravel默认的S3驱动配置适配AWS原生路径规则,需要额外添加两个参数适配DO Spaces的路径拼接逻辑,修改config/filesystems.php中的do_spaces配置块如下:
'do_spaces' => [ 'driver' => 's3', 'key' => env('DO_SPACES_KEY'), 'secret' => env('DO_SPACES_SECRET'), 'endpoint' => env('DO_SPACES_ENDPOINT'), 'region' => env('DO_SPACES_REGION'), 'bucket' => env('DO_SPACES_BUCKET'), 'bucket_endpoint' => false, 'use_path_style_endpoint' => true, ],
- 清理配置缓存
修改完成后执行命令清理Laravel的配置缓存,避免旧配置仍被调用:php artisan config:clear
修改完成后重新访问测试路由即可正常调用Spaces存储接口。
内容的提问来源于stack exchange,提问作者Andrius Kairys
相关产品推荐
相关产品推荐

