laravel gcs

本文介绍了如何在 Laravel 项目中整合 Google Cloud Storage,包括安装扩展包、配置 keyfile、创建存储分区、设置 SSL CA 证书以及在 config/filesystems.php 中的配置和使用测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、安装扩展包:composer require superbalist/laravel-google-cloud-storage 

2、从google云平台下载keyfile:service-account.json ,放到本地磁盘(项目某个路径下)

3、google 云平台创建一个存储分区

4、从网上下载一个SSL CA证书 cacert.pem,配置php.ini 

[curl]
curl.cainfo=xxx/cacert.pem

5、config/filesystems.php 中配置gcs 存储:

'gcs' => [
    'driver' => 'gcs',
    'project_id' => env('GOOGLE_CLOUD_PROJECT_ID', 'yourProjectId'),
    'key_file' => env('GOOGLE_CLOUD_KEY_FILE', '../gcloud/service-account.json'), 
    'bucket' => env('GOOGLE_CLOUD_STORAGE_BUCKET', 'yourBucket'),
    'path_prefix' => env('GOOGLE_CLOUD_STORAGE_PATH_PREFIX', null),
    'storage_api_uri' => env('GOOGLE_CLOUD_STORAGE_API_URI', 'https://storage.googleapis.com'),
    'visibility' => 'public', // optional: public|private
],

 

6、使用:

public function upload(Request $request){

        if(!$request->hasFile('source')){
            return null;
        }

        $folder = date('Y-m-d');

        $files = array();
        foreach($request->file('source') as $file) {
            if ($file->isValid()) {
                //获取文件的扩展名
                $ext = $file->getClientOriginalExtension();

                //定义文件名, randomString :自定义的随机字符串生成函数
                $filename = $folder.'/'.Util::randomString(10).'.'.$ext;

                $disk = Storage::disk('gcs');
                $disk->put($filename, file_get_contents($file));
                $url = $disk->url($filename);

                $files[] = $url;
            }
        }

        return $files;

    }

7、测试:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值