2013-02-12 53 views
8

मैं d3ango-storages के साथ s3 से स्थिर सामग्री की सेवा कर रहा हूं। यह boto 2.5.X का उपयोग करते समय ठीक काम करता है। लेकिन जब मैं boto> = 2.6 का उपयोग करता हूं तो s3 मीडिया के लिए यूआरएल उलझन में आता है; एक अतिरिक्त चर संलग्न है। अंतर यह है कि एक्स-एएमजे-सुरक्षा-टोकन संलग्न हो जाता है (जो मैं नहीं चाहता)। मीडिया यूआरएल पर उपलब्ध नहीं है।django-storages और s3boto बैकएंड का उपयोग करना: x-amz-security-token संलग्न है जो मुझे नहीं चाहिए

https://mybucket.s3.amazonaws.com/static/style/css/layout.min.css?x-amz-security-token=AQoDYXdzEKj/76aRNkwEaoALUm866M8Z6Kc4aF/76aRNkjDcT70xSVB58kR%2BONYLf7y1z1pgqUX7fPRXVQjP9DYOZzcVdHCV27zybD/iPYT2C6rCEnvkQvhcq.... 

कोई सुझाव:

मेरी settings.py में मैं

AWS_QUERYSTRING_AUTH = False 

गलत URL का उपयोग करें?

+0

क्या आपको कभी इसका जवाब मिला? – bodger

+0

नहीं ... अभी भी बोटो – bowlby

+0

पुराने संस्करण के साथ काम कर रहा है, लेकिन मैं इस व्यवहार को वर्तमान बोटो (2.42) और डीजेंगो-स्टोरेज (1.5) * केवल * के साथ देख रहा हूं जब ईसी 2 आईएएम भूमिका का उपयोग करते हैं। एक [लंबे समय तक चलने वाला बोटो बग] (https://github.com/boto/boto/issues/1477) दिखाई देता है। और [यह कामकाज] (https://github.com/boto/boto/issues/1477#issuecomment-38759048) मेरे लिए काम किया। – medmunds

उत्तर

0

कोशिश में जोड़ने के लिए में आप

AWS_S3_SECURE_URLS settings.py = झूठी

+0

मेरा मानना ​​है कि AWS_S3_SECURE_URLS सेटिंग https बनाम http urls को नियंत्रित करती है, और क्वेरीस्ट्रिंग ऑथ जोड़ने के लिए असंबंधित है। – medmunds

2

मैं है एक बेहतर काम पर Django-भंडार आधारित चारों ओर (संस्करण 1.1.8) जो

है
AWS_S3_CUSTOM_DOMAIN = 'mybucket.s3.amazonaws.com' 

यह django-storage कॉलिंग बोटो के generate_url से बचाता है और संसाधन के पथ को एकसाथ सिलाई करता है। यदि आप स्थिर फाइलें प्राप्त करने के लिए ऑथ का उपयोग करना चाहते हैं तो यह काम नहीं करेगा।

उत्सुक के लिए:

अपनी साइट के कुछ भागों पर स्टेटिक फ़ाइलें काम किया है और अन्य भागों, व्यवस्थापक की तरह, काम नहीं किया। यही कारण है कि

और

के बीच

{% load static %} 
{% load staticfiles %} 
अंतर से जुड़े हुए थे दोनों एक ब्लॉक टैग {% static %} परिभाषित करते हैं, लेकिन वे अलग अलग बातें करते हैं। स्थैतिक से एक बस {{STATIC_URL}} को प्रस्तुत करता है, जो फ़ाइल के लिए यूआरएल प्राप्त करने के लिए स्टोरेज की url विधि का उपयोग करके staticfiles से एक है। admin_static से django व्यवस्थापक का {% static %} ब्लॉक भंडारण का उपयोग करते हुए staticfiles एक जैसा कार्य करता है।

{% load staticfiles %} का उपयोग करके बदलकर AWS_QUERYSTRING_AUTH = False और/या AWS_S3_SECURE_URLS = False पर मेरी साइट को हर जगह समान रूप से तोड़ दिया गया था। इसने मूल रूप से बोटो generate_url में समस्या की ओर इशारा किया, कि querystring_authFalse है, x-amz-security-token अभी भी सेट हो गया है।

+0

यह मेरे लिए बहुत अच्छा काम करता है, धन्यवाद @amjoconn! – respondcreate