豁然高

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

从google storage上传或者下载文件

向Google storage上传文件

复制代码
   // Bucketを取得
    private static function getStorageBucket() {

        if (!isset(self::$bucket)) {
            putenv(\Config::get('gcs.access_key'));
            $storage = new StorageClient();
            self::$bucket = $storage->bucket(\Config::get('gcs.bucket'));
        }
    }

    //ファイルをstorageにアップロード
    private static function uploadToStorage($fileName) {
        self::getStorageBucket();
        // Bucket確認
        if (self::$bucket->exists()) {
            $fromPath = self::$current_jobno_path.DS.$fileName;
            if (file_exists($fromPath)) {
                $targePpath = "document_search".DS.self::$current_jobno.DS.$fileName;
                $options = [
                    'name' => $targePpath
                ];
                
                $handle = fopen($fromPath, 'r');
                $object = self::$bucket->upload(
                    $handle,
                    $options
                );
            } else {
                \Log::error("ファイル(".$fromPath.")が不存在です。");
            }
            
        } else {
            \Log::error('GCS BUCKET NOT EXIST.');
        }

    }
复制代码

 

 

从Google storage下载文件

复制代码
    public function download($from_file_path, $to_file_path) : String {
        $url = '';
        
        // manualファイル取得
        $object = $this->bucket->object($from_file_path);
        // 署名付きURL取得
        //         if ($object->exists()) {
        $stream  = $object->downloadToFile($to_file_path);
        //         }
        
        return $stream;
    }
复制代码

 

获取Google storage中文件URL

复制代码
    public function getUrl($file_path) : String {
        $url = '';
        
        // manualファイル取得
        $object = $this->bucket->object($file_path);
        // 署名付きURL取得
//         if ($object->exists()) {
            $url = $object->signedUrl(new \DateTime('+60 minute'));
//         }
        
        return $url;
    }
复制代码

 

posted on   豁然高  阅读(500)  评论(0编辑  收藏  举报

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示