django-storage und amazon s3 - suspicientoperation

9

Ich benutze Django-Speicher mit Amazon S3. Ich sehe den folgenden Fehler etwas zeitweise:

%Vor%

Beachten Sie die einzelne / nach https: .

Weiß jemand, warum das auftaucht? Es passiert nicht die ganze Zeit. Ich kann das in anderen Fällen erfolgreich machen.

    
Khandelwal 21.09.2012, 17:15
quelle

5 Antworten

3

_normalize_name macht eine Menge Phantasie und ist meistens unnötig für Django-Sachen mit der URL. In meinem Fall überschreibe ich einfach die S3BotoStorage wie folgt:

%Vor%

Dann verwenden Sie es in der Speichereigenschaft:

%Vor%

Und es funktionierte für django simple ImageField mit dieser Basiskonfiguration:

%Vor%     
danigosa 17.03.2015 14:21
quelle
2

Wenn Sie default_storage-Methoden verwenden, stellen Sie sicher, dass Sie file.name:

verwenden

Richtig:

%Vor%

Falsch:

%Vor%

Falsch:

%Vor%

Alle drei obigen Beispiele arbeiten mit lokalen Dateien, aber wenn Sie s3 verwenden, werden Sie auf diesen Fehler stoßen, wenn Sie nicht file.name verwenden.

    
arctelix 15.04.2013 20:05
quelle
1

Ich habe den S3-Speicher noch nicht mit meinem eigenen Projekt arbeiten lassen, aber ich bin gerade über diesen Fehler hinweggelaufen und könnte Sie vielleicht in die richtige Richtung weisen.

Wenn Sie sich S3BotoStorage._clean_name () ansehen, ist es nur: return os.path.normpath(name).replace('\', '/') . os.path.normpath () konvertiert das // in Ihrer URL in \\ , und dann konvertiert .replace () das in \ . Dann überprüft S3BotoStorage._normalize_name (), ob diese fehlerhafte URL Teil des Standorts ist, für den sie steht, was natürlich nicht der Fall ist. Hier wird der SuspiciousOperation-Fehler ausgelöst.

So sieht "name" so aus, als wäre es ein lokaler Pfad anstelle der gesamten AWS-URL. In meinem Fall war die unmittelbare Ursache FILEBROWSER_DIRECTORY = MEDIA_URL + "uploads/" in settings.py, die ich versucht hatte, um einen anderen Fehler über einen fehlenden Upload-Ordner zu beheben.

    
toxotes 22.09.2012 14:22
quelle
0

Einstellung

%Vor%

hat das Problem für mich behoben.

    
manojlds 04.05.2013 18:09
quelle
-1

Ich habe das behoben und SuspiciousOperation hinzugefügt außer:

%Vor%     
Mateus Padua 24.11.2016 10:58
quelle