2016-01-20 138 views
1

我想將本地靜態文件與S#存儲桶同步,但每次運行collectstatic命令時,它都不會檢測到本地文件中的任何更改,因此不會將本地靜態文件夾與S3存儲桶同步。與django同步S3存儲桶的問題

我正在使用django-storages-redux == 1.3.1。 ,這裏是我的設置:

STATICFILES_LOCATION = 'static' 
STATICFILES_STORAGE = 'pathto.StaticStorage' 
STATIC_URL = "https://%s.s3.amazonaws.com/%s/" % (AWS_STORAGE_BUCKET_NAME, STATICFILES_LOCATION) 

MEDIAFILES_LOCATION = 'media' 
DEFAULT_FILE_STORAGE = 'pathto.MediaStorage' 
MEDIA_URL = "https://%s.s3.amazonaws.com/%s/" % (AWS_STORAGE_BUCKET_NAME, MEDIAFILES_LOCATION) 

靜態和媒體存儲類

class StaticStorage(S3BotoStorage): 
    location = getattr(settings, 'STATICFILES_LOCATION', 'static') 


class MediaStorage(S3BotoStorage): 
    location = getattr(settings, 'MEDIAFILES_LOCATION', 'media') 

而且我猜Django的storgae不與Python3兼容。我正在使用djnago1.8和python3。那麼,有沒有可以使用Django 1.8和python3

+0

如果您可以使用'aws cli'來解決問題。我有類似的問題,我做了一個特殊的觸發器的bash腳本 –

+0

@NikhilParmar我也在考慮bash腳本,但rt現在由於時間很短,我認爲可能是collectstatic最後期限將做這項工作,但我想我錯了:(你有任何教程或例子,可以幫助我理解 – user5594493

+0

這[鏈接](https://aws.amazon.com/cli/)將清除你所有的疑問's3 sync'.Bash腳本只是把該命令在它並觸發它與您當前的代碼 –

回答

0

工作的順利開展任何包作爲尼基爾在他的評論暗示,這是更好地利用aws cli,而不是Django的包。這是短期和不太複雜

AWS​​ 混帳repo 我已經follwed git的文檔。它更多的解釋和清除(只是你需要同步S3桶)

這裏是用來同步鬥命令(我同步靜態文件夾) aws s3 sync static s3://storage-<bucket-name>/static --exclude *.tmp

你也需要這個命令之前配置AWS,如何配置aws在我上面提到的git repo中有解釋。

+0

嘿,它會更好,如果你發佈你現在使用的每個人的代碼。 –