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;
|
||
|
}
|
||
|
}
|