Closed wonderbeyond closed 4 years ago
我直接在自己应用工程里面定义了一个子类找回了 Django 的默认行为:
myproject/storages.py:
from django_oss_storage.backends import OssStorage
class OssMediaStorage(OssStorage):
def __init__(self, location='media', **kwargs):
self.location = location
super(OssMediaStorage, self).__init__(**kwargs)
settings.py:
DEFAULT_FILE_STORAGE = 'mysite.storages.OssMediaStorage'
Duplicated with https://github.com/aliyun/django-oss-storage/issues/17.
So sorry
fixed in version 1.1.1
在
OssMediaStorage
和OssStaticStorage
两个 Storage 子类中,save 方法被覆盖了,只是简单地调用了OssStorage
的_save
方式,而无视了django.core.files.storage.Storage.save
提供的文件名放冲突行为。建议
OssMediaStorage
和OssStaticStorage
就不要定义save
方法了,直接从django.core.files.storage.Storage
继承就好,它会自动找一个不冲突的名字,然后调用子类的_save
方法。