任何想法如何使用Carrierwave上傳圖片與Heroku。Carrierwave + Heroku
我已將此添加到上傳文件:
def cache_dir
"#{Rails.root}/tmp/uploads"
end
但仍然圖像不保存!上傳圖像後,它會保存並刷新頁面後,圖像會中斷。
任何幫助,將不勝感激!謝謝
任何想法如何使用Carrierwave上傳圖片與Heroku。Carrierwave + Heroku
我已將此添加到上傳文件:
def cache_dir
"#{Rails.root}/tmp/uploads"
end
但仍然圖像不保存!上傳圖像後,它會保存並刷新頁面後,圖像會中斷。
任何幫助,將不勝感激!謝謝
我不認爲你可以使用Heroku和上傳圖像沒有第三方存儲服務,如亞馬遜S3。
https://devcenter.heroku.com/articles/s3
的Heroku允許你存儲裏面TMP,但只是爲了發送到第三方服務的文件。裏面carrierwave上傳類,你可以例如設置
存儲:霧
,而不是默認:文件和設置上傳到AWS S3。還有其他選項。
有一件事是,如果您在Heroku上使用免費層實例,您的上傳需要在一分鐘內完成 - 我會建議您將文件直接上傳到s3帳戶。
https://github.com/dwilkie/carrierwave_direct
希望它可以幫助
在Heroku上的文件系統不保留。只有通過部署機制上傳的文件(git push)纔會「保留」。其他人如"#{Rails.root}/tmp/uploads"
文件夾中的文件將被刪除。這就是爲什麼他們正在消失。
我已經回答了similar question here。這是一個報價:
你Heroku在Heroku有一個「只讀」文件系統。從某種意義上說,您的文件不會在您的dyno重新啓動之間持續存在,並且不能保證它們將在任何兩個請求之間持續存在。下面是一個excerpt from the docs:
每個賽道都有自己短暫的文件系統,不與任何其他DYNO共享,也就是隻要你斷開丟棄。這個文件系統使用slug歸檔文件,所以一次性的dynos可以充分利用應用程序中部署的任何東西。
您可以使用#{Rails.root}/tmp
文件夾作爲臨時文件夾,但需要將文件上傳到某些外部存儲器(S3,某些CDN等)。 Heroku有一些插件可以很容易地處理。