我有一個免費的Heroku帳戶,我的Node應用程序使用Amazon S3存儲文件。我使用s3fs模塊以及多方中間件,它們首先暫時存儲文件,然後將其上傳到S3。Heroku中的臨時文件會發生什麼(節點應用程序)
在fs上傳和取消鏈接文件後,該文件在本地開發期間仍保留在本地臨時文件夾中。我在我的Heroku應用程序上部署了相同的代碼,我很擔心是否有任何方法檢查臨時文件夾或每天刪除它,因爲該應用程序具有500mb的slug大小限制,上傳的文件甚至可能超過100s的Mbs。
我有一個免費的Heroku帳戶,我的Node應用程序使用Amazon S3存儲文件。我使用s3fs模塊以及多方中間件,它們首先暫時存儲文件,然後將其上傳到S3。Heroku中的臨時文件會發生什麼(節點應用程序)
在fs上傳和取消鏈接文件後,該文件在本地開發期間仍保留在本地臨時文件夾中。我在我的Heroku應用程序上部署了相同的代碼,我很擔心是否有任何方法檢查臨時文件夾或每天刪除它,因爲該應用程序具有500mb的slug大小限制,上傳的文件甚至可能超過100s的Mbs。
在Heroku中,每個dyno都有自己的臨時文件系統,並附有最近部署的代碼的全新副本。
通常,臨時文件系統的工作方式與任何文件系統一樣。您有權寫入的目錄,例如/tmp
,您可以將文件寫入。
在dyno的生命週期中,其運行進程可以使用文件系統作爲臨時暫存器,並且在停止,重新啓動或回收dyno時丟棄任何寫入的文件。
如果你是存儲在/tmp
文件夾中的臨時文件,你可以運行df
檢查用和可用空間:
heroku run bash
df -h /tmp
還要注意的是,塞是您的應用程序和文件的壓縮和預包裝複製不是存儲在slu inside中,而是存儲在你的dyno的臨時文件系統中。你很可能沒有一個真正證明必須從你的dyno的臨時文件系統中刪除文件的用例。
總之,您不應該擔心每天刪除tmp
文件夾,因爲任何寫入的文件將在測功機停止或重新啓動或大約每天一次的時候被丟棄,這是正常動態管理的一部分。
感謝您的回答。我需要在上傳到S3之前處理文件,這就是爲什麼它被臨時存儲。在Heroku開始收費之前,我不會有任何問題。上傳到S3後臨時文件沒用,我擔心在動態重啓之間,應用程序會收集臨時數據達到幾GB。 –
嗨Abhishek,我有短暫的存儲相同的用例(它只會在文件正在處理時)。你是否必須刪除臨時創建的文件?謝謝 – Okcomputer