You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel使用laravel-google-cloud-storage包遇NotFoundException求助

解决Laravel使用laravel-google-cloud-storage上传时的NotFoundException

嘿,我之前在Laravel里用这个Google Cloud Storage包的时候也碰到过一模一样的NotFoundException,结合你给出的配置信息,咱们一步步排查解决:

1. 先揪出最容易犯的低级错误:拼写问题

你.env里写的GOOGLE_CLOUD_KEY_FILE=/var/www/project/credintials.json,注意!是credentials不是credintials——这个拼写错误会直接导致Laravel找不到凭证文件,进而触发NotFoundException。先把文件名和路径的拼写改对,这是很多人踩过的坑。

2. 验证存储桶的存在与权限

  • 打开Google Cloud Console,确认你的存储桶minisite_event确实存在,并且它所属的项目ID和你.env里的GOOGLE_CLOUD_PROJECT_ID='myproject-123456'完全一致(GCS的项目ID和存储桶名大小写敏感,别打错字)。
  • 检查服务账号权限:打开你的JSON凭证文件,找到client_email字段,去Google Cloud IAM控制台搜索这个邮箱,确认它被授予了Storage Object Creator或者Storage Admin的权限。没有权限的话,即使存储桶存在,服务账号也看不到它,会返回“找不到”的错误。

3. 确保凭证文件的权限正确

Laravel的运行用户(通常是www-data)需要能读取你的JSON凭证文件,否则会因为权限不足读不到凭证,间接导致存储桶“找不到”的错误。可以通过以下命令调整权限:

chmod 644 /var/www/project/credentials.json
chown www-data:www-data /var/www/project/credentials.json

4. 检查Laravel文件系统配置

打开config/filesystems.php,确认你已经正确配置了GCS磁盘:

'disks' => [
    // ... 其他磁盘配置(比如local、public)
    'gcs' => [
        'driver' => 'gcs',
        'project_id' => env('GOOGLE_CLOUD_PROJECT_ID'),
        'key_file' => env('GOOGLE_CLOUD_KEY_FILE'),
        'bucket' => env('GOOGLE_CLOUD_STORAGE_BUCKET'),
        'path_prefix' => env('GOOGLE_CLOUD_STORAGE_PATH_PREFIX', ''),
    ],
],

同时,确保你上传文件的代码里指定了gcs磁盘,比如:

// 正确的写法
Storage::disk('gcs')->put('uploads/avatar.jpg', $fileContent);

// 错误的写法(用了默认磁盘,比如local)
Storage::put('uploads/avatar.jpg', $fileContent);

5. 清除Laravel配置缓存

有时候Laravel会缓存旧的.env配置,导致新的修改不生效。运行以下命令清除缓存:

php artisan config:clear
php artisan cache:clear

6. 快速测试连接

可以写一个简单的测试路由来验证GCS连接是否正常:

Route::get('/test-gcs-connection', function () {
    $disk = Storage::disk('gcs');
    // 尝试检查一个测试文件是否存在,不管结果如何,都能验证连接是否正常
    dd($disk->exists('test-file.txt'));
});

访问这个路由,如果还是报错,那大概率是凭证或者权限的问题,回到步骤2和3再仔细检查。

内容的提问来源于stack exchange,提问作者Ariful Haque

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:30:58