2013-03-12 17 views
8

Wenn Medien mit django-Speicher s3 dient, wobei die Medien-URL, die generiert wird, so etwas wie dieses:Django Speicher s3 media url ist https: // statt http: //

https://mybucket.s3.amazonaws.com/myimage.jpg?Signature=5ifoyLqzmtfVNS1ovfzVvN92RH0%3D&Expires=1363124819&AWSAccessKeyId=AKIAJ7ZTU7K4SPYKGOFA 

verursachende die Bilder nicht wegen https angezeigt:

You attempted to reach mybucket.s3.amazonaws.com, 
but instead you actually reached a server identifying itself as *.s3.amazonaws.com. 
This may be caused by a misconfiguration on the server or by something more serious. An attacker on your network could be trying to get you to visit a fake (and potentially harmful) version of mybucket.s3.amazonaws.com. 

muss ich die Bilder als HTTP nicht HTTPS

Meine Einstellungen sind bedient werden:

DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage' 
AWS_ACCESS_KEY_ID = "AKIAJ....K4SPYKGOFA" 
AWS_SECRET_ACCESS_KEY = "2Y7G98JoCRzAEp....rPoCjWZuwDaQ" 
AWS_STORAGE_BUCKET_NAME = "mybucket" 

Ich habe versucht, die media_url und s3_url auf normale http, aber es hat nichts geändert.

Ich bin mit django 1,5

+0

Können Sie mir sagen, wo in der AWS-Konsole ich diese Änderung vornehmen würde? –

+0

Sie sollten die Änderung in der Django-Einstellungsdatei vornehmen (standardmäßig ist es settings.py) – YardenST

+0

Vielen Dank für Ihre Rückmeldung. Ich fürchte, ich stelle die falsche Frage. Ich nutze S3 einfach als Speicherort für Dateien, die ich in meine iOS App geladen habe. Ich habe zuvor http verwendet, aber das ist jetzt fehlgeschlagen, offenbar Amazon geändert, um https zu verwenden. Meine App wird bereitgestellt und ich versuche, dass AWS wieder auf http reagiert. Ich glaube nicht, dass ich Django benutze, aber dieser Beitrag schien über dasselbe zu sprechen. Wenn du mich irgendwo finden kannst, um das herauszufinden, würde ich es schätzen! –

Antwort

8

Sie könnten dies wahrscheinlich mit einem einzigen AWS_S3_SECURE_URLS = False lösen. Allerdings sind diese Einstellungen im Fluss wie die aktuellen Version 1.1.6 hier ist also ein bisschen mehr Detail auf dem zugehörigen Einstellungen:

AWS_S3_SECURE_URLS = False 
AWS_S3_URL_PROTOCOL = 'http' 
AWS_STORAGE_BUCKET_NAME = 'mybucket' 
AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME 

AWS_S3_URL_PROTOCOL ist der neue Weg und wenn auf einen leeren String ermöglicht Protokoll relativ URLs. Aus Gründen der Abwärtskompatibilität benötigen Sie AWS_S3_SECURE_URLS. Und im Moment ist AWS_S3_CUSTOM_DOMAIN necessary, wenn Sie AWS_S3_URL_PROTOCOL verwenden. Hier ist ein Entwickler discussion zum Implementieren von Protokoll relativen URLs mit dem S3Boto-Backend.

Es ist auch erwähnenswert Django-Speicher bietet ein S3-Backend sowie ein anderes S3Boto-Backend. Ihre Frage unterscheidet nicht die, die Sie verwenden, obwohl Ihr Code dies tut.

+0

Vielen Dank für Ihre ausführliche Antwort, und vor allem der letzte Absatz – YardenST

+0

AWS_S3_URL_PROTOCOL sollte "http: –