From 90eb5c71e9ab901d44796e6ba60d291db295b6b2 Mon Sep 17 00:00:00 2001 From: Wisp X Date: Mon, 17 Jan 2022 09:09:31 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E7=AD=96=E7=95=A5=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=8E=9F=E5=9B=BE=E4=BF=9D=E6=8A=A4=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Enums/Strategy/KodoOption.php | 3 +++ app/Enums/Strategy/LocalOption.php | 3 +++ app/Models/Image.php | 10 ++++++++-- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/app/Enums/Strategy/KodoOption.php b/app/Enums/Strategy/KodoOption.php index 31e29ced..d1338ff3 100644 --- a/app/Enums/Strategy/KodoOption.php +++ b/app/Enums/Strategy/KodoOption.php @@ -15,4 +15,7 @@ final class KodoOption /** @var string Bucket */ const Bucket = 'bucket'; + + /** @var string 是否启用获取原始 url 功能 */ + const IsEnableOriginUrl = 'is_enable_origin_url'; } diff --git a/app/Enums/Strategy/LocalOption.php b/app/Enums/Strategy/LocalOption.php index 65215653..1dd5a320 100644 --- a/app/Enums/Strategy/LocalOption.php +++ b/app/Enums/Strategy/LocalOption.php @@ -9,4 +9,7 @@ final class LocalOption /** @var string 根目录 */ const Root = 'root'; + + /** @var string 是否启用获取原始 url 功能 */ + const IsEnableOriginUrl = 'is_enable_origin_url'; } diff --git a/app/Models/Image.php b/app/Models/Image.php index 8aa71436..02f876fd 100644 --- a/app/Models/Image.php +++ b/app/Models/Image.php @@ -2,7 +2,9 @@ namespace App\Models; +use App\Enums\Strategy\LocalOption; use App\Service\ImageService; +use App\Utils; use Carbon\Carbon; use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Factories\HasFactory; @@ -111,8 +113,12 @@ class Image extends Model if (!$this->strategy) { return Storage::disk('uploads')->url($this->pathname); } - $domain = rtrim($this->strategy->configs->get('domain'), '/'); - return $domain.'/'.$this->pathname; + // 是否启用了获取图片直链功能 + if ($this->strategy->configs->get(LocalOption::IsEnableOriginUrl)) { + return rtrim($this->strategy->configs->get(LocalOption::Domain), '/').'/'.$this->pathname; + } else { + return asset($this->pathname); + } }); }