首页 > 解决方案 > 使用 Laravel 将图像文件上传到谷歌云

问题描述

您好我正在尝试使用 laravel API 将图像文件上传到谷歌云存储。我已经通过composer集成了google sdk,我尝试与邮递员联系桶。这是我的代码。这是我的控制器

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/'),
],

这就是我所做的一切。我错过了什么吗?需要任何额外的配置吗?

标签: laravelgoogle-cloud-storageimage-upload

解决方案


这是因为您正在生成 url 但没有存储在磁盘中的文件中,这是代码示例首先从请求中获取文件内容: $avatar = $request->file('avatar') 其次将其保存到存储中: Storage::disk('gcs')->put('avatars/'.$me->uuid , $file);


推荐阅读