laravel - 使用 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/'),
],
这就是我所做的一切。我错过了什么吗?需要任何额外的配置吗?
解决方案
这是因为您正在生成 url 但没有存储在磁盘中的文件中,这是代码示例首先从请求中获取文件内容:
$avatar = $request->file('avatar')
其次将其保存到存储中:
Storage::disk('gcs')->put('avatars/'.$me->uuid , $file);
推荐阅读
- python - 当条件匹配时仅使用 Python 中的 csv 包更新单元格值
- python - 如何从基于 LSTM 的自动编码器中获取潜在空间表示?
- bash - Tar 在 bash 中的每个反斜杠前面添加了额外的反斜杠
- c - 为什么在下一次循环迭代中指针设置为 NULL?
- angular - 如果我的组件由带有嵌套元素的选择器调用,我可以从 nsAfterViewInit 访问和操作这些嵌套元素吗?
- r - 当绘图区域大小裁剪 geom_bar 上的标签时,如何管理 facet_wrap 中的自由缩放
- laravel - 如何解决为 foreach() 提供的无效参数
- c# - GzipStream 块压缩导致文件损坏
- android - 显示或隐藏 AppBar 和 Toolbar - 取决于片段
- html - HTML 项目符号不显示