如何在 local_settings.py 中关闭 django cumulus

How do I turn off django cumulus in my local_settings.py

接手了一个使用django cumulus做云存储的项目。在我的开发机器上,有时我使用较慢的互联网连接,每次我保存更改时,django 都会重新编译并尝试连接到 racksapace 存储

Starting new HTTPS connection (1): identity.api.rackspacecloud.com

这有时需要 15 秒,真的很痛苦。我读到一篇 post,其中有人说他们关闭了本地开发的积云。我认为这是通过设置

完成的
DEFAULT_FILE_STORAGE

但不幸的是 poster 没有指定。如果有人知道一个简单的设置,我可以在我的本地设置中设置从我的本地机器提供媒体和静态文件,并停止 django 在每次保存时尝试连接到我的云存储,这就是我想要做的。

是的,看起来您只需要将 DEFAULT_FILE_STORAGE 作为默认值即可,根据 source code.

django.core.files.storage.FileSystemStorage

但是,更好的方法是不在本地设置中设置任何内容,而是在 staging_settings.pyprod_settings.py 文件中设置 DEFAULT_FILE_STORAGECUMULUS

rackspace 桶的不断重新加载是因为以前的开发人员

from cumulus.storage import SwiftclientStorage
class PrivateStorage(SwiftclientStorage):

并在 models.py

from common.storage import PrivateStorage
PRIVATE_STORE = PrivateStorage()
...
class Upload(models.Model):
    upload = models.FileField(storage=PRIVATE_STORE, upload_to=get_upload_path)

这意味着 每次 项目重新加载时,它都会创建一个到 rackspace 的新 https 连接,如果连接不佳则超时。我创建了一个设置标志来控制它,方法是像这样导入 SwiftclientStorage 和定义 PrivateStorage

from django.conf import settings
if settings.USECUMULUS:
    from cumulus.storage import SwiftclientStorage

    class PrivateStorage(SwiftclientStorage):
...
else:
    class PrivateStorage():
        pass