我正在尝试使用Laravel文件系统将文件上传到Digitalocean Spaces。我在youtube上看了一个教程,但是我一直从Laravel那里得到一个错误,说“端点必须是完整的URI并包含一个方案和主机”。
这是我遵循的教程: https://www.youtube.com/watch?v=vFwy-vB_d_k&t=776s
任何帮助都将不胜感激。
在config / filesystems.config中我添加了这个
'do_spaces' => [
'driver' => 's3',
'key' => env('DO_SPACES_KEY'),
'secret' => env('DO_SPACES_SECRET'),
'region' => env('DO_SPACES_REGION'),
'bucket' => env('DO_SPACES_BUCKET'),
'endpoint' => env('DO_SPACES_ENDPOINT'),
],
在我的.env文件中
DO_SPACES_KEY= secret
DO_SPACES_SECRET= secret
DO_SPACES_REGION=nyc3
DO_SPACES_BUCKET= afghanjamtest
DO_SPACES_ENDPOINT= https://nyc3.digitaloceanspaces.com
这是我的控制器代码
$input=$request->all();
$songs=array();
if($files=$request->file('files')){
foreach($files as $file){
$name=$file->getClientOriginalName();
$path = Storage::disk('do_spaces')->putFileAs('uploads', $file, $name);
// $file->move('songs',$name);
$songs[]=$name;
}
}
return redirect('/show');
}
答案 0 :(得分:1)
更改您的环境变量:
DO_SPACES_KEY='secret'
DO_SPACES_SECRET='secret'
DO_SPACES_REGION='nyc3'
DO_SPACES_BUCKET='afghanjamtest'
DO_SPACES_ENDPOINT='https://nyc3.digitaloceanspaces.com'
Whitout空格在'或'之间,因为有时秘密包含一个char#,并且在env文件中是一个特殊的char。
答案 1 :(得分:0)
配置很好,但您需要从配置中删除缓存。
如果正在运行则关闭服务器(因为您还需要重新启动服务器才能使更改生效)
php artisan clear:data
php artisan cache:clear
现在再次运行服务器,并希望它能够正常工作。