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