feat : ali
This commit is contained in:
@@ -5,10 +5,10 @@ namespace App\Cache\Redis\Common;
|
|||||||
class CommonRedisKey
|
class CommonRedisKey
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @var $type
|
|
||||||
* @return string
|
* @return string
|
||||||
|
*@var string $type
|
||||||
*/
|
*/
|
||||||
public static function getSystemRegionList($type = 'all')
|
public static function getSystemRegionList(string $type = 'all'): string
|
||||||
{
|
{
|
||||||
return '__system:address:list:'.$type;
|
return '__system:address:list:'.$type;
|
||||||
}
|
}
|
||||||
|
|||||||
29
app/Controller/Common/ThirdCallbackController.php
Normal file
29
app/Controller/Common/ThirdCallbackController.php
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace App\Controller\Common;
|
||||||
|
|
||||||
|
use App\Service\Common\OssCallbackService;
|
||||||
|
use Hyperf\HttpServer\Annotation\Controller;
|
||||||
|
use Hyperf\HttpServer\Annotation\RequestMapping;
|
||||||
|
use Psr\Container\ContainerExceptionInterface;
|
||||||
|
use Psr\Container\NotFoundExceptionInterface;
|
||||||
|
use RedisException;
|
||||||
|
|
||||||
|
#[Controller]
|
||||||
|
class ThirdCallbackController
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* oss回调处理
|
||||||
|
* @return array
|
||||||
|
* @throws ContainerExceptionInterface
|
||||||
|
* @throws NotFoundExceptionInterface
|
||||||
|
* @throws RedisException
|
||||||
|
*/
|
||||||
|
#[RequestMapping(path: "/common/oss/ossCallBack", methods: "post")]
|
||||||
|
public function callback()
|
||||||
|
{
|
||||||
|
return (new OssCallbackService)->process();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -10,14 +10,57 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace App\Cron\Oss;
|
namespace App\Cron\Oss;
|
||||||
|
|
||||||
|
use App\Cache\Redis\Common\CommonRedisKey;
|
||||||
|
use App\Cache\Redis\RedisCache;
|
||||||
|
use App\Extend\DateUtil;
|
||||||
|
use App\Lib\Log;
|
||||||
|
use App\Model\OssObject;
|
||||||
use Hyperf\Crontab\Annotation\Crontab;
|
use Hyperf\Crontab\Annotation\Crontab;
|
||||||
|
use Hyperf\Di\Annotation\Inject;
|
||||||
|
use Psr\Container\ContainerExceptionInterface;
|
||||||
|
use Psr\Container\NotFoundExceptionInterface;
|
||||||
|
use RedisException;
|
||||||
|
|
||||||
#[Crontab(rule: "* * * * *", name: "OssDelByDisableTask", singleton: true , callback: "execute", memo: "这是一个示例的定时任务")]
|
#[Crontab(rule: "0 5 * * *", name: "OssDelByDisableTask", singleton: true , callback: "execute", memo: "定时删除未使用的oss资源")]
|
||||||
class OssDelByDisableTask
|
class OssDelByDisableTask
|
||||||
{
|
{
|
||||||
public function execute()
|
/**
|
||||||
|
* 日志
|
||||||
|
* @var Log $log
|
||||||
|
*/
|
||||||
|
#[Inject]
|
||||||
|
protected Log $log;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 缓存
|
||||||
|
* @var RedisCache $redis
|
||||||
|
*/
|
||||||
|
#[Inject]
|
||||||
|
protected RedisCache $redis;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return void
|
||||||
|
* @throws ContainerExceptionInterface
|
||||||
|
* @throws NotFoundExceptionInterface
|
||||||
|
* @throws RedisException
|
||||||
|
*/
|
||||||
|
public function execute(): void
|
||||||
{
|
{
|
||||||
//todo Write logic
|
$ossObjectModel = new OssObject();
|
||||||
var_dump(date('Y-m-d H:i:s', time()));
|
|
||||||
|
$time = date('Y-m-d H:i:s',time() - DateUtil::DAY);
|
||||||
|
$list = $ossObjectModel->getOssIdListByIsEnabled($time);
|
||||||
|
|
||||||
|
if (empty($list)){
|
||||||
|
$this->log->notice(__CLASS__.'昨日没有无效的资源');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
foreach ($list->toArray() as $item) {
|
||||||
|
$this->redis->lPush(CommonRedisKey::getDeleteOssImgListByOssId(), (string)$item,'system');
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->log->notice(__CLASS__.'异步删除昨日无效图片');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -10,14 +10,90 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace App\Cron\Oss;
|
namespace App\Cron\Oss;
|
||||||
|
|
||||||
|
use App\Cache\Redis\Common\CommonRedisKey;
|
||||||
|
use App\Cache\Redis\RedisCache;
|
||||||
|
use App\Lib\Log;
|
||||||
|
use App\Model\OssObject;
|
||||||
use Hyperf\Crontab\Annotation\Crontab;
|
use Hyperf\Crontab\Annotation\Crontab;
|
||||||
|
use Hyperf\Di\Annotation\Inject;
|
||||||
|
use Psr\Container\ContainerExceptionInterface;
|
||||||
|
use Psr\Container\NotFoundExceptionInterface;
|
||||||
|
|
||||||
#[Crontab(rule: "* * * * *", name: "OssDelByOssIdTask", singleton: true , callback: "execute", memo: "这是一个示例的定时任务")]
|
#[Crontab(rule: "* * * * *", name: "OssDelByOssIdTask", singleton: true , callback: "execute", memo: "根据id删除oss的逻辑")]
|
||||||
class OssDelByOssIdTask
|
class OssDelByOssIdTask
|
||||||
{
|
{
|
||||||
public function execute()
|
/**
|
||||||
|
* 日志
|
||||||
|
* @var Log $log
|
||||||
|
*/
|
||||||
|
#[Inject]
|
||||||
|
protected Log $log;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 缓存
|
||||||
|
* @var RedisCache $redis
|
||||||
|
*/
|
||||||
|
#[Inject]
|
||||||
|
protected RedisCache $redis;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return void
|
||||||
|
* @throws ContainerExceptionInterface
|
||||||
|
* @throws NotFoundExceptionInterface
|
||||||
|
*/
|
||||||
|
public function execute(): void
|
||||||
{
|
{
|
||||||
//todo Write logic
|
try {
|
||||||
var_dump(date('Y-m-d H:i:s', time()));
|
$key = CommonRedisKey::getDeleteOssImgListByOssId();
|
||||||
|
|
||||||
|
$delNum = 0;
|
||||||
|
$ossIds = [];
|
||||||
|
for ($i = 1; $i < 50; $i++) {
|
||||||
|
$one = $this->redis->rPop($key);
|
||||||
|
if (empty($one)){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$ossIds[] = $one;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (count($ossIds) == 0) {
|
||||||
|
$this->log->notice(__CLASS__.':success:无根据id删除的列表');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$ossObjectModel = new OssObject();
|
||||||
|
|
||||||
|
//获取url列表用于删除oss
|
||||||
|
$urlList = $ossObjectModel->whereIn('id', $ossIds)->pluck('url');
|
||||||
|
|
||||||
|
if (empty($urlList)){
|
||||||
|
$this->log->error(__CLASS__.':删除内容关联失败,无法获取url!');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(count($urlList->toArray()) != count($ossIds))
|
||||||
|
{
|
||||||
|
$this->log->error(__CLASS__.':删除内容关联失败,url数量与id数量不一致!');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除oss图片
|
||||||
|
$res = $ossObjectModel->whereIn('id', $ossIds)->delete();
|
||||||
|
if (!$res) {
|
||||||
|
$this->log->error(__CLASS__.':删除内容关联失败,删除sql执行失败!');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//删除oss资源
|
||||||
|
//把图片地址丢到删除redis队列
|
||||||
|
foreach ($urlList as $item) {
|
||||||
|
$this->redis->lPush(CommonRedisKey::getDeleteOssImgListByUrl(), $item);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->log->notice(__CLASS__.':success:删除oss文件个数:' . $delNum);
|
||||||
|
}catch (\Exception $e){
|
||||||
|
$this->log->error(__CLASS__.':'.$e->getMessage());
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -10,14 +10,66 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace App\Cron\Oss;
|
namespace App\Cron\Oss;
|
||||||
|
|
||||||
|
use App\Cache\Redis\Common\CommonRedisKey;
|
||||||
|
use App\Cache\Redis\RedisCache;
|
||||||
|
use App\Lib\Log;
|
||||||
use Hyperf\Crontab\Annotation\Crontab;
|
use Hyperf\Crontab\Annotation\Crontab;
|
||||||
|
use Hyperf\Di\Annotation\Inject;
|
||||||
|
use OSS\Core\OssException;
|
||||||
|
use OSS\Http\RequestCore_Exception;
|
||||||
|
use OSS\OssClient;
|
||||||
|
use Psr\Container\ContainerExceptionInterface;
|
||||||
|
use Psr\Container\NotFoundExceptionInterface;
|
||||||
|
use RedisException;
|
||||||
|
use function Hyperf\Config\config;
|
||||||
|
|
||||||
#[Crontab(rule: "* * * * *", name: "OssDelByUrlTask", singleton: true , callback: "execute", memo: "这是一个示例的定时任务")]
|
#[Crontab(rule: "* * * * *", name: "OssDelByUrlTask", singleton: true , callback: "execute", memo: "根据url删除oss的逻辑")]
|
||||||
class OssDelByUrlTask
|
class OssDelByUrlTask
|
||||||
{
|
{
|
||||||
public function execute()
|
/**
|
||||||
|
* 日志
|
||||||
|
* @var Log $log
|
||||||
|
*/
|
||||||
|
#[Inject]
|
||||||
|
protected Log $log;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 缓存
|
||||||
|
* @var RedisCache $redis
|
||||||
|
*/
|
||||||
|
#[Inject]
|
||||||
|
protected RedisCache $redis;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return void
|
||||||
|
* @throws OssException
|
||||||
|
* @throws RequestCore_Exception
|
||||||
|
* @throws ContainerExceptionInterface
|
||||||
|
* @throws NotFoundExceptionInterface
|
||||||
|
* @throws RedisException
|
||||||
|
*/
|
||||||
|
public function execute(): void
|
||||||
{
|
{
|
||||||
//todo Write logic
|
$key = CommonRedisKey::getDeleteOssImgListByUrl();
|
||||||
var_dump(date('Y-m-d H:i:s', time()));
|
|
||||||
|
// 阿里云oss上传
|
||||||
|
$OssClient = new OssClient(
|
||||||
|
config('ali.access_key_id'),
|
||||||
|
config('ali.access_key_secret'),
|
||||||
|
config('ali.intranet_endpoint')
|
||||||
|
);
|
||||||
|
$bucket = config('ali.bucket');
|
||||||
|
|
||||||
|
$delNum = 0;
|
||||||
|
for ($i = 1; $i < 50; $i++) {
|
||||||
|
$url = $this->redis->rPop($key);
|
||||||
|
|
||||||
|
if (!empty($url)) {
|
||||||
|
$delNum++;
|
||||||
|
$OssClient->deleteObject($bucket, $url);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->log->notice(__CLASS__.':success:删除oss文件个数:' . $delNum);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
99
app/Extend/DateUtil.php
Normal file
99
app/Extend/DateUtil.php
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Extend;
|
||||||
|
|
||||||
|
class DateUtil
|
||||||
|
{
|
||||||
|
public const MINUTE = 60; // 分
|
||||||
|
public const HOUR = 3600; // 小时
|
||||||
|
public const DAY = 86400; // 天
|
||||||
|
public const WEEK = 604800; // 周
|
||||||
|
public const MONTH = 2592000; // 月
|
||||||
|
public const YEAR = 311040000; // 年
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前时间到今日结束的秒数
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
static function getTodayEnds(): int
|
||||||
|
{
|
||||||
|
return 86400 - (time() + 8 * 3600) % 86400;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前时间
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
static function getCurrentDatetime(): string
|
||||||
|
{
|
||||||
|
return date('Y-m-d H:i:s');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取今日开始的时间
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
static function getTodayStartDate(): string
|
||||||
|
{
|
||||||
|
return date("Y-m-d 00:00:00");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取今日结束的时间
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
static function getTodayEndDate(): string
|
||||||
|
{
|
||||||
|
return date("Y-m-d 23:59:59");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前日期
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
static function getCurrentDate(): string
|
||||||
|
{
|
||||||
|
return date('Y-m-d');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取某天开始的时间
|
||||||
|
* @param int $i
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
static function getStartDate(int $i = 1): string
|
||||||
|
{
|
||||||
|
return date("Y-m-d 00:00:00", strtotime("-{$i} day"));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取某日结束的时间
|
||||||
|
* @param int $i
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
static function getEndDate(int $i = 1): string
|
||||||
|
{
|
||||||
|
return date("Y-m-d 23:59:59", strtotime("-{$i} day"));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取某天前日期
|
||||||
|
* @param int $i
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
static function getDate(int $i = 1): string
|
||||||
|
{
|
||||||
|
return date('Y-m-d', strtotime("-{$i} day"));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前的毫秒时间戳(13位)
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
static function getCurrentMsTime(): string
|
||||||
|
{
|
||||||
|
list($ms, $sec) = explode(' ', microtime());
|
||||||
|
$msTime = (float)sprintf('%.0f', (floatval($ms) + floatval($sec)) * 1000);
|
||||||
|
return substr($msTime,0,13);
|
||||||
|
}
|
||||||
|
}
|
||||||
107
app/Model/OssObject.php
Normal file
107
app/Model/OssObject.php
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace App\Model;
|
||||||
|
|
||||||
|
use Hyperf\Collection\Collection;
|
||||||
|
use Hyperf\DbConnection\Model\Model;
|
||||||
|
use function Hyperf\Config\config;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @property int $id
|
||||||
|
* @property string $url
|
||||||
|
* @property int $size
|
||||||
|
* @property int $height
|
||||||
|
* @property int $width
|
||||||
|
* @property int $audio_second
|
||||||
|
* @property int $video_duration
|
||||||
|
* @property int $is_enabled
|
||||||
|
* @property string $create_time
|
||||||
|
* @property int $type
|
||||||
|
*/
|
||||||
|
class OssObject extends Model
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* The table associated with the model.
|
||||||
|
*/
|
||||||
|
protected ?string $table = 'oss_object';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The attributes that are mass assignable.
|
||||||
|
*/
|
||||||
|
protected array $fillable = [];
|
||||||
|
|
||||||
|
protected array $guarded = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The attributes that should be cast to native types.
|
||||||
|
*/
|
||||||
|
protected array $casts = ['id' => 'integer', 'size' => 'integer','height' => 'integer', 'width' => 'integer', 'audio_second' => 'integer', 'video_duration' => 'integer', 'is_enabled' => 'integer', 'type' => 'integer'];
|
||||||
|
|
||||||
|
const CREATED_AT = 'create_time';
|
||||||
|
|
||||||
|
const UPDATED_AT = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* url访问器
|
||||||
|
* @param $value
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getUrlAttribute($value)
|
||||||
|
{
|
||||||
|
return config('ali.oss_url').$value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据ids获取资源id列表
|
||||||
|
* @param array $ids
|
||||||
|
* @return Collection
|
||||||
|
*/
|
||||||
|
public function getIdListByIds(array $ids): Collection
|
||||||
|
{
|
||||||
|
return $this->whereIn('id', $ids)->pluck('id');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据ids更新oss Enable状态
|
||||||
|
*/
|
||||||
|
public function updateEnabledByIds(array $ids): int
|
||||||
|
{
|
||||||
|
return $this->whereIn('id', $ids)->update(['is_enabled' => 1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据ids 更新oss Disable状态
|
||||||
|
* @param array $ids
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
public function updateDisableByIds(array $ids): int
|
||||||
|
{
|
||||||
|
return $this->whereIn('id', $ids)->update(['is_enabled' => 0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据id获取信息
|
||||||
|
* @param array $ids
|
||||||
|
* @return Collection
|
||||||
|
*/
|
||||||
|
public function getInfoByOssIds(array $ids): Collection
|
||||||
|
{
|
||||||
|
return $this->whereIn('id', $ids)->get();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据is_enabled获取传入时间前无效资源id
|
||||||
|
* @param $time
|
||||||
|
* @return Collection|false
|
||||||
|
*/
|
||||||
|
public function getOssIdListByIsEnabled($time): Collection|false
|
||||||
|
{
|
||||||
|
return $this->where([
|
||||||
|
['is_enabled', '=', 0],
|
||||||
|
['create_time', '<',$time]
|
||||||
|
])->pluck('id') ?? false;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -10,13 +10,12 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace App\Service\Common;
|
namespace App\Service\Common;
|
||||||
|
|
||||||
use AlibabaCloud\SDK\Sts\V20150401\Sts;
|
|
||||||
use App\Cache\Redis\Common\CommonRedisKey;
|
use App\Cache\Redis\Common\CommonRedisKey;
|
||||||
use App\Cache\Redis\RedisCache;
|
use App\Cache\Redis\RedisCache;
|
||||||
use App\Exception\AdminException;
|
use App\Exception\AdminException;
|
||||||
use App\Lib\AdminReturn;
|
use App\Lib\AdminReturn;
|
||||||
use App\Lib\Log;
|
use App\Lib\Log;
|
||||||
use App\Service\ServiceTrait\Common\AliStsTrait;
|
use App\Model\OssObject;
|
||||||
use Exception;
|
use Exception;
|
||||||
use Hyperf\Di\Annotation\Inject;
|
use Hyperf\Di\Annotation\Inject;
|
||||||
use Hyperf\HttpServer\Contract\RequestInterface;
|
use Hyperf\HttpServer\Contract\RequestInterface;
|
||||||
@@ -28,7 +27,6 @@ use function Hyperf\Config\config;
|
|||||||
|
|
||||||
class OssCallbackService
|
class OssCallbackService
|
||||||
{
|
{
|
||||||
use AliStsTrait;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 请求对象
|
* 请求对象
|
||||||
@@ -116,7 +114,7 @@ class OssCallbackService
|
|||||||
$this->ossClient = new OssClient(
|
$this->ossClient = new OssClient(
|
||||||
config('ali.access_key_id'),
|
config('ali.access_key_id'),
|
||||||
config('ali.access_key_secret'),
|
config('ali.access_key_secret'),
|
||||||
config('oss.sts_endpoint')
|
config('ali.intranet_endpoint')
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->bucket = config('ali.bucket');
|
$this->bucket = config('ali.bucket');
|
||||||
@@ -167,7 +165,8 @@ class OssCallbackService
|
|||||||
|
|
||||||
return $this->adminReturn->success('上传成功',[
|
return $this->adminReturn->success('上传成功',[
|
||||||
'id' => $this->newId,
|
'id' => $this->newId,
|
||||||
'url' => config('ali.oss_url') . $this->newObjectPath, 'old_file_name' => $this->fileName
|
'url' => config('ali.oss_url') . $this->newObjectPath,
|
||||||
|
'old_file_name' => $this->fileName
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -277,23 +276,23 @@ class OssCallbackService
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// $ossObjectModel = new OssObject();
|
$ossObjectModel = new OssObject();
|
||||||
//
|
|
||||||
// $ossObjectModel->url = $this->newObjectPath;
|
|
||||||
//// $ossObjectModel->url = urldecode($this->data['object']);
|
|
||||||
// $ossObjectModel->width = $this->data['imageInfo_width'] ?? 0;
|
|
||||||
// $ossObjectModel->height = $this->data['imageInfo_height'] ?? 0;
|
|
||||||
// $ossObjectModel->audio_second = $this->data['audio_second'] ?? 0;
|
|
||||||
// $ossObjectModel->video_duration = $this->data['video_duration'] ?? 0;
|
|
||||||
// $ossObjectModel->size = $this->data['size'] ?? 0;
|
|
||||||
//
|
|
||||||
// $ossObjectModel->type = $type;
|
|
||||||
//
|
|
||||||
// if (!$ossObjectModel->save()){
|
|
||||||
// throw new AdminException('保存图片失败');
|
|
||||||
// }
|
|
||||||
|
|
||||||
// $this->newId = $ossObjectModel->id;
|
$ossObjectModel->url = $this->newObjectPath;
|
||||||
|
// $ossObjectModel->url = urldecode($this->data['object']);
|
||||||
|
$ossObjectModel->width = $this->data['imageInfo_width'] ?? 0;
|
||||||
|
$ossObjectModel->height = $this->data['imageInfo_height'] ?? 0;
|
||||||
|
$ossObjectModel->audio_second = $this->data['audio_second'] ?? 0;
|
||||||
|
$ossObjectModel->video_duration = $this->data['video_duration'] ?? 0;
|
||||||
|
$ossObjectModel->size = $this->data['size'] ?? 0;
|
||||||
|
|
||||||
|
$ossObjectModel->type = $type;
|
||||||
|
|
||||||
|
if (!$ossObjectModel->save()){
|
||||||
|
throw new AdminException('保存图片失败');
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->newId = $ossObjectModel->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -305,7 +304,7 @@ class OssCallbackService
|
|||||||
private function deleteOssObject(): void
|
private function deleteOssObject(): void
|
||||||
{
|
{
|
||||||
//删除旧的文件
|
//删除旧的文件
|
||||||
$this->redisCache->lPush(CommonRedisKey::getDeleteOssImgListByUrl(), $this->data['object']);
|
$this->redisCache->lPush(CommonRedisKey::getDeleteOssImgListByUrl(), $this->data['object'],'system');
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -31,4 +31,6 @@ return [
|
|||||||
'sts_endpoint' => env('ALI_STS_ENDPOINT', 'sts.cn-shenzhen.aliyuncs.com'),
|
'sts_endpoint' => env('ALI_STS_ENDPOINT', 'sts.cn-shenzhen.aliyuncs.com'),
|
||||||
// 阿里云 sts 角色
|
// 阿里云 sts 角色
|
||||||
'role_arn' => env('ALI_ROLE_ARN', 'acs:ram::1644087445786901:role/oss'),
|
'role_arn' => env('ALI_ROLE_ARN', 'acs:ram::1644087445786901:role/oss'),
|
||||||
|
// 阿里云内网 endpoint
|
||||||
|
'intranet_endpoint' => env('ALI_INTRANET_ENDPOINT', 'oss-cn-shenzhen-internal.aliyuncs.com'),
|
||||||
];
|
];
|
||||||
Reference in New Issue
Block a user