<?php namespace app\service; use think\facade\Config; use think\facade\Log; use Qiniu\Auth; use Qiniu\Storage\UploadManager; class Qiniu { private static $oss = null; private function __construct() { } private function __clone() { } /** * 七牛云OSS * */ public static function config() { Config::load('extra/qiniu', 'qiniu'); return config('qiniu'); } // 七牛云OSS实例 单例模式 public static function instance(): ?OssClient { if (self::$oss == null) { try { $conf = self::config(); self::$oss = new OssClient($conf['accessKeyId'], $conf['accessKeySecret'], $conf['endpoint']); } catch (OssException $e) { Log::error('实例化阿里云OSS失败: ' . $e->getMessage()); return null; } } return self::$oss; } public static function aa() { $conf = self::config(); // 控制台获取密钥:https://portal.qiniu.com/user/key $accessKey = $conf['qiniuAccessKey']; $secretKey = getenv('qiniuSecretKey'); $bucket = getenv('bucket'); // 构建鉴权对象 $auth = new Auth($accessKey, $secretKey); // 生成上传 Token $token = $auth->uploadToken($bucket); // 要上传文件的本地路径 $filePath = './php-logo.png'; // 上传到七牛存储后保存的文件名 $key = 'my-php-logo.png'; // 初始化 UploadManager 对象并进行文件的上传。 $uploadMgr = new UploadManager(); // 调用 UploadManager 的 putFile 方法进行文件的上传,该方法会判断文件大小,进而决定使用表单上传还是分片上传,无需手动配置。 list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath); echo "\n====> putFile result: \n"; if ($err !== null) { var_dump($err); } else { var_dump($ret); } } }