// +---------------------------------------------------------------------- declare (strict_types=1); namespace app\common\library\storage\engine; use Google\Cloud\Storage\StorageClient; use think\facade\Log; /** * 谷歌存储引擎 (GCS) * Class Google * @package app\common\library\storage\engine */ class Google extends Basics { /** * 执行上传 * @return bool */ public function upload(): bool { $keyFilePath = '/etc/nginx/nginx/html/dihua-01-5690813badec.json'; $storage = new StorageClient(['projectId' => 'dihua-01', 'keyFilePath' => $keyFilePath]); $bucket = $storage->bucket('freeshippingvps'); $filePathAbsolute = public_path('uploads') . $this->getSaveFileInfo()['file_path']; try { $storageObj = $bucket->upload( fopen($filePathAbsolute, 'r'), [ 'name' => $this->getSaveFileInfo()['file_path'] ] ); $name = $storageObj->name(); if (empty($name)) { Log::error('上传文件到google云失败'); $this->error = '上传文件到google云失败'; return false; } } catch (\Exception $e) { $this->error = $e->getMessage(); return false; } return true; } /** * 删除文件 * @param string $filePath * @return bool */ public function delete(string $filePath): bool { return true; } }