我試圖將圖像上傳到Heroku上的鳳凰應用程序。我有一個簡單的應用程序,遵循從Phoenix's docs上傳文件的說明。Heroku上的鳳凰文件複製
我有一個簡單的窗體,控制器使用File.cp_r()
從臨時目錄複製文件。
def create(conn, %{"user" => user_params}) do
if upload = user_params["photo"] do
File.cp_r(upload.path, "priv/static/images/foo.jpg") #non-dynamic name, doens't matter
end
...
end
工作只是在我的本地文件。但是,當我上傳到Heroku,測試目錄上的表格和heroku run find
,我什麼也沒看到。
我注意到,在Heroku此目錄下有一個看似令人望而卻步的特權:
drwx------ 2 u25619 dyno 4096 Apr 23 05:14 images
我想在一個漂亮的小File.chmod("priv/static/images", 0o777)
下滑,但無濟於事;該目錄似乎與我無關,所以我認爲這是一個英雄問題。
任何想法如何處理?
編輯:通過使用鳳凰dep ex_aws
上傳到Amazon S3存儲桶解決。
- ex_aws dependency
- partial explanation(注:您需要添加毒物和哈克尼,使這項工作,他們沒有提及)
試着'File.cp_r!'這會拋出一個錯誤,然後您可以在日誌中讀取它的原因。 (如果需要的話,'File.chmod!'也是如此。)如果在進行更改後發佈詳細日誌,我們可能會提供更多幫助。你也可以通過'IO.inspect(File.cp_r(...))'來記錄該函數的返回值。 – Dogbert
@Dogbert'File.cp_r!'什麼也不顯示,'IO.inspect(File.cp_r(...))'顯示'{:ok,[「priv/static/images/foo.jpg」]},仍然空空如也。 –
你能確認這個沒有任何回報:'heroku run find。 | grep'priv/static/images/foo.jpg''? – Dogbert