[嗨,我尝试使用laravel API将图像文件上传到Google云存储。我已经通过作曲家集成了google sdk,我尝试用邮递员打我正在获取url并存储在我的数据库中,但是图像文件未上传到google cloud的文件夹中。我在其中创建了一个名为“头像”的文件夹桶。这是我的代码。这是我的控制器
public function updateAvatar (AvatarUploadRequest $request) {
$me = Auth::user();
$disk = Storage::disk('gcs');
$url = $disk->url('avatars'. "/" . $me->uuid . ".jpg");
$me->avatar = $url;
$me->save();
return $this->prepareItem($me);
}
这是我的filesystems.php文件
'gcs' => [
'driver' => 'gcs',
'project_id' => env('GOOGLE_CLOUD_PROJECT_ID', 'my-project-id'),
'key_file' => env('GOOGLE_CLOUD_KEY_FILE', null),
'bucket' => env('GOOGLE_CLOUD_STORAGE_BUCKET', 'my-bucket-name'),
'path_prefix' => env('GOOGLE_CLOUD_STORAGE_PATH_PREFIX', null),
'storage_api_uri' => env('GOOGLE_CLOUD_STORAGE_API_URI',
'https://console.cloud.google.com/storage/browser/my-project-id/'),
],
我完成的全部。我错过了什么吗?是否需要任何其他配置?
这是因为您正在生成url,但未存储在磁盘上的文件中,这是代码示例拳头从请求中获取文件内容:$avatar = $request->file('avatar')
第二保存到存储:Storage::disk('gcs')->put('avatars/'.$me->uuid , $file);