From bbf9b4cc6c9c64e6da5ef217670305f0ac827b9d Mon Sep 17 00:00:00 2001 From: hanshuaikang <1758504262@qq.com> Date: Thu, 16 Nov 2023 10:28:47 +0800 Subject: [PATCH] =?UTF-8?q?bugfix:=20django=203.2.13=20=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E4=B8=8B=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adapter/utils/storage.py | 18 +++++++++++++++++- requirements.txt | 2 +- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/adapter/utils/storage.py b/adapter/utils/storage.py index d0ab9be12..1e3d0ea39 100644 --- a/adapter/utils/storage.py +++ b/adapter/utils/storage.py @@ -24,6 +24,7 @@ """ from django.core.files.storage import Storage +from django.core.files import File class CephStorage(Storage): @@ -35,8 +36,23 @@ class CephStorage(Storage): def storage(self): from bkstorages.backends.rgw import RGWBoto3Storage + class CustomRGWBoto3Storage(RGWBoto3Storage): + def save(self, name, content, max_length=None): + """ + 去除validate_file_name(name, allow_relative_path=True) 检查,保证content的可用性 + """ + if name is None: + name = content.name + + if not hasattr(content, "chunks"): + content = File(content, name) + + name = self.get_available_name(name, max_length=max_length) + name = self._save(name, content) + return name + if self._storage is None: - self._storage = RGWBoto3Storage() + self._storage = CustomRGWBoto3Storage() return self._storage diff --git a/requirements.txt b/requirements.txt index 1670fe432..c16f53889 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,7 +4,7 @@ # 请确保指定的包和版本号,可通过pip安装 # blueapps requirement -Django==3.2.4 +Django==3.2.13 PyMySQL==0.6.7 mysqlclient==2.0.3 MarkupSafe==1.1.1