2012-05-09 49 views
2

我正在構建一個網站,要求用戶上傳圖片,每個圖片大約70MB到我的服務器。目前我正在運行一個512MB RAM的Linode。由於其他站點位於此服務器上,所以沒有太多的額外內存可用,因此可以將這些映像上載到服務器,而不必通過將映像直接轉儲到文件系統來佔用任何RAM,或者通過POST上載任何文件在它被轉儲到文件系統之前,必須首先加載到內存中?這個問題的性質是否需要一個有很多RAM的服務器?我可以通過HTML表單將大圖像上傳到我的服務器而無需使用RAM嗎?

會有辦法以某種方式將ftp客戶端集成到html表單中嗎?如果這有所作爲,我正在使用Django。

+2

技術上說,這是通過上傳文件的各個部分在幾個請求,並將它們追加到同一個文件可能。使用HTML5,你可以使用'FileAPI'。 – kirilloid

回答

1

根據您的要求.... Django的文件上傳有兩種類型的上傳。

1 - InMemory上傳 2.臨時上傳

在InMemoryUpload的情況下,你上傳的是RAM只有通過request.FILES, 但是可以設置上傳從InMemoryUpload隱蔽它TemporaryUpload最終使用這些文件這節省了RAM的/ tmp文件夾來存儲它......

在settings.py: -

FILE_UPLOAD_MAX_MEMORY_SIZE = #something

將上載到內存中的文件的最大大小(以字節爲單位)。 大於FILE_UPLOAD_MAX_MEMORY_SIZE的文件將被傳輸到磁盤。 默認爲2.5兆字節。

FILE_UPLOAD_TEMP_DIR = q若要SME路徑

其中比FILE_UPLOAD_MAX_MEMORY_SIZE較大上傳的文件將被存儲的目錄。 默認爲系統的標準臨時目錄(即大多數類Unix系統上的/ tmp)。

然後,您可以將該文件以塊的形式寫入所需的目錄,因爲一旦系統關閉,/ tmp將刪除所有文件。 請點擊此鏈接:

https://docs.djangoproject.com/en/dev/topics/http/file-uploads/#changing-upload-handler-behavior

+0

請通過用更多的信息進行詳細說明來改善答案 –

+1

謝謝你告訴我。改進,是否需要更多信息? –

+0

我認爲這是確定的;)謝謝 –

相關問題