2016-04-15 9 views
0

Ich habe ein Projekt übernommen, das Django Cumulus für Cloud-Speicher verwendet. Auf meiner Entwicklung Maschine verwenden einige Male habe ich eine langsame Internetverbindung, und jedes Mal, wenn ich eine Änderung speichern, django neu kompiliert und versucht, eine Verbindung mit dem racksapace SpeicherWie schalte ich Django Cumulus in meinem local_settings.py

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

Diese manchmal dauert 15 Sekunden und ist ein echter zu machen Schmerzen. Ich las einen Beitrag, in dem jemand sagte, dass er Cumulus für die lokale Entwicklung abstellte. Ich denke, das wurde durch die Einstellung

DEFAULT_FILE_STORAGE 

gemacht, aber leider hat das Plakat nicht angegeben. Wenn jemand eine einfache Einstellung kennt, kann ich meine lokalen Einstellungen verwenden, um Medien und statische Dateien von meinem lokalen Rechner aus zu übertragen und django zu stoppen, um bei jedem Speichern eine Verbindung zu meinem Cloud-Speicher herzustellen, das ist, was ich tun möchte.

Antwort

0

Die ständige Neuladen des Höheneinheit Eimer war, weil der vorherige Entwickler

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

und 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) 

Das bedeutete jedes Zeit das Projekt neu geladen in hatte, wäre es ein erstellen neue https-Verbindung zum Rackspace und Timeout bei schlechter Verbindung Ich habe eine Einstellung Flagge dies zu steuern, indem den Import von SwiftclientStorage setzen und der Definition von PrivateStorage wie so

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

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

Ja, es sieht so aus, als müssten Sie nur den DEFAULT_FILE_STORAGE als Standardwert verwenden, der django.core.files.storage.FileSystemStorage gemäß source code ist.

jedoch ein besserer Ansatz wäre nichts in der lokalen Einstellungen zu setzen und die DEFAULT_FILE_STORAGE und CUMULUS in einer staging_settings.py oder prod_settings.py Datei.

+0

Danke für die Info, aber auf diesen Wert einstellen DEFAULT_FILE_STORAGE es nicht reparieren, und wenn ich die Einstellungen entfernen insgesamt für das und CUMULUS, bekomme ich Authentifizierungsfehler. Es versucht weiterhin, eine Verbindung zum Remote-Cloud-Speicher herzustellen. Es scheint auch kein Middleware-Ding zu sein :( – MagicLAMP

Verwandte Themen