2017-04-05 61 views
3

我使用以下指南:配置的Django /鶺鴒媒體使用S3

https://www.caktusgroup.com/blog/2014/11/10/Using-Amazon-S3-to-store-your-Django-sites-static-and-media-files/

在指示你如何「配置Django的媒體使用S3」一節。我正在使用這個W。。

我不清楚在哪裏放置「custom_storages.py」設置。我把它放在任何地方似乎都不起作用。現在我恢復了Whitenoise。

謝謝!

+0

只是一些建議;我遵循相同的教程,並使其工作,但是,'django-storages'項目沒有得到積極維護。我發現了一個bug,併發布了一個PR,但它沒有被合併或評論過,並且已經有好幾個月了。由於我只使用S3並且不需要其他存儲類型,因此我轉而使用django-s3-storage,這顯着簡化了事情,並且有詳細記錄。你可以在這裏找到它:https://github.com/etianen/django-s3-storage – FlipperPA

+0

@FlipperPA Django-storages被積極維護,如果你看看提交歷史,你幾乎每天都會看到更新。 – dentemm

+0

@dentemm公平點,我沒有檢查一下。但是這個PR是一個相當重要的錯誤修復,已經有一段時間了:https://github.com/jschneier/django-storages/pull/233關於W,,這會導致用戶在Wagtail上傳的圖片/文檔到因爲'size'應該用來代替'content_length'。 – FlipperPA

回答

0

您需要設置STATICFILES_STORAGE設置

STATICFILES_STORAGE = 'path/to/custom_storages.StaticStorage' 

如果您正在使用鶺鴒(我假設你做,因爲你的標記與它這個問題),你可以將它放在默認家/目錄,並指它像這樣:

# custom_storages.py 
from django.conf import settings 
from storages.backends.s3boto import S3BotoStorage 

class StaticStorage(S3BotoStorage): 
    location = settings.STATICFILES_LOCATION 

custom_storages.py的內容都在引導你下列規定「家/ custom_storages.StaticStorage」 0

編輯: 我有一個GitHub回購(也是一個w project項目),其中我使用此代碼,但僅限於我的媒體文件。你可以檢查它here

+0

謝謝你!這有幫助。 – emTr0

3

您可以將custom_storages.py放在您的Python路徑的任何位置。 Django將嘗試使用STATICFILES_STORAGE設置的值來查找該類,在該示例中該值爲'custom_storages.StaticStorage'。因此,Django實際上將「導入custom_storages」並使用「custom_storages.StaticStorage」作爲存儲類。只要確保你可以「導入custom_storages」,它應該工作。

+0

謝謝,但你能有點更詳細/具體。我正在學習。 – emTr0

+0

查看Python如何在您最喜歡的Python引用中找到導入的文件,並希望事情變得清晰。 –

+0

好的,我會檢查併發布更新後。謝謝。 – emTr0