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