2011-06-01 56 views
0

我正在使用一個Rails應用程序,它依賴於50MB + TIFF文件的大集合(1000個文件)。我遇到的麻煩是確定如何處理處理。在舊版本的應用程序中,用戶必須在配置文件中指定一個路徑(最好是服務器中安裝的SAN驅動器),該文件成爲所有TIFF集合的根目錄,並且該路徑被應用程序使用所有的處理。在Rails中存儲數千個文件

應用程式需要:

  • 待辦事項批量處理給出的路徑,像老版本的TIFF(使用RMagick創建JPG,調整大小,添加文字標籤等)。我們仍然要求用戶指定一個路徑作爲所有項目的根目錄。

  • 允許用戶以兩種方式將新文件添加到TIFF集合。

    • 添加新文件(S),其然後被存儲在根路徑 像上面,這將通過 該應用被檢測並通過web用戶接口處理

    • 上傳 文件, 在根目錄 的路徑中。

我不知道這是否是實現這一目標能夠接受的方式。我們在配置中需要根路徑的原因是因爲文件大小太大而無法從Web界面上傳所有內容。想象一下上傳1,000個TIFF文件需要多長時間,每個文件至少需要50MB〜100MB的大小。我想不出有什麼辦法來處理它。任何想法將不勝感激。

+0

你用什麼寶石來處理文件? – 2011-06-01 16:53:19

+0

對於上傳,carrierwave - 但通過本地訪問批處理,我想我會使用標準的Ruby文件IO。 – mhy 2011-06-01 17:21:20

回答

1

不是直接引用運行Rails應用程序的服務器上的本地PATH,最好使用Capistrano來部署應用程序,並將公共文件夾下的符號鏈接到文件根目錄。

例如,在軌道根:

LN -fs的/ var/lib中/ huge_file_collection公共/文件

然後Rails應用始終擁有文件一致的位置(其可以存儲在常量) ,並且Capistrano可以用來動態地將你使用的任何位置鏈接到rails應用程序中的正確路徑。

當然,如果需要的話,載波也可以使用公共/文件夾作爲上傳文件的根目錄。

相關問題