2013-05-07 51 views
5

我有一個媒體文件夾,用於存儲我在開發過程中上傳的所有圖像,並將我的django(1.5.1)項目推送到heroku上的開發服務器。裏面的媒體文件夾裏我有Heroku在git push時刪除文件?

media/ 
    # cache and images were commited before .gitignored was added 
    cache/ # store thumbnails 
    images/ # store images 
    .gitignore 

中的.gitignore具有

* 
!.gitignore 

的問題是每當我混帳推到Heroku的,我所有的測試上傳由混帳一掃而光。有沒有辦法解決這個問題?

回答

9

這不是Git的問題,而是Heroku的問題。 Heroku的file system是短暫的,並且在部署之間重置。使用像Amazon S3這樣的服務來存儲上傳的文件。

+0

我不確定這是否會幫助我解決問題。我不希望heroku上的新文件被刪除。我不關心git媒體文件夾中的內容。 – Derek 2013-05-07 21:50:46

+0

@Derek:這不是將它們抹掉的混帳 - Heroku有一個臨時文件系統(臨時文件在部署之間被刪除)。使用像S3一樣的永久文件存儲。 – mipadi 2013-05-07 22:04:02

+2

@Derek mipadi是對的。我會解釋Heroku如何部署它們。他們創建一個新目錄,從git拉入新目錄(這將是你的新版本),然後當它準備好面對世界(所有工作都已完成設置應用程序)時,它只會改變工作目錄符號鏈接到您的新版本目錄。這是部署應該採取的正確方式。但是這意味着上傳並存儲在舊版本中的任何文件都不會提供給您的新版本。使用Amazon S3存儲您上傳的文件,並在數據庫中跟蹤它們。 – JoshEmory 2013-05-07 22:18:51