Files
EasyAdmin8/app/admin/service/upload/driver/alioss/Oss.php
wolfcode e1c3216904 init
2023-06-15 16:18:27 +08:00

70 lines
1.6 KiB
PHP

<?php
namespace app\admin\service\upload\driver\alioss;
use EasyAdmin\upload\interfaces\OssDriver;
use OSS\Core\OssException;
use OSS\OssClient;
class Oss implements OssDriver
{
protected static $instance;
protected $accessKeyId;
protected $accessKeySecret;
protected $endpoint;
protected $bucket;
protected $domain;
protected $ossClient;
protected function __construct($config)
{
$this->accessKeyId = $config['alioss_access_key_id'];
$this->accessKeySecret = $config['alioss_access_key_secret'];
$this->endpoint = $config['alioss_endpoint'];
$this->bucket = $config['alioss_bucket'];
$this->domain = $config['alioss_domain'];
$this->ossClient = new OssClient($this->accessKeyId, $this->accessKeySecret, $this->endpoint);
return $this;
}
public static function instance($config)
{
if (is_null(self::$instance)) {
self::$instance = new static($config);
}
return self::$instance;
}
public function save($objectName,$filePath)
{
try {
$upload = $this->ossClient->uploadFile($this->bucket, $objectName, $filePath);
} catch (OssException $e) {
return [
'save' => false,
'msg' => $e->getMessage(),
];
}
if (!isset($upload['info']['url'])) {
return [
'save' => false,
'msg' => '保存失败',
];
}
return [
'save' => true,
'msg' => '上传成功',
'url' => $upload['info']['url'],
];
}
}