46 lines
		
	
	
		
			945 B
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			46 lines
		
	
	
		
			945 B
		
	
	
	
		
			PHP
		
	
	
|  | <?php | ||
|  | 
 | ||
|  | namespace app\service; | ||
|  | 
 | ||
|  | use OSS\Core\OssException; | ||
|  | use OSS\OssClient; | ||
|  | use think\facade\Config; | ||
|  | use think\facade\Log; | ||
|  | 
 | ||
|  | class AliOss | ||
|  | { | ||
|  |     private static $oss = null; | ||
|  | 
 | ||
|  |     private function __construct() | ||
|  |     { | ||
|  |     } | ||
|  | 
 | ||
|  |     private function __clone() | ||
|  |     { | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * 阿里云OSS | ||
|  |      * | ||
|  |      */ | ||
|  |     public static function config() | ||
|  |     { | ||
|  |         Config::load('extra/alioss', 'alioss'); | ||
|  |         return config('alioss'); | ||
|  |     } | ||
|  | 
 | ||
|  |     // 阿里云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; | ||
|  |     } | ||
|  | } |