2014-09-19 159 views
0

是否可以使用Spring MVC從壓縮文件中提供靜態資源?類似this使用Spring從壓縮文件中提供靜態資源

我有包裝成單獨的JSON文件的一些數據(例如123.json,1634.json等)和目前經由

<mvc:resources mapping="/resources/**" location="/resources/" /> 

的文件是.../resources/dataFiles/下爲他們提供服務。因此,用戶可以去http://mywebsite.com/resources/dataFiles/123.json檢索實體123的數據。

但是,我有〜10,000個JSON文件。如果我可以在一個文件(.../resources/dataFiles/entities.zip)下壓縮它們,並告訴Spring從壓縮文件中提供單個JSON文件,那將是非常好的。

因此,用戶仍然會去http://mywebsite.com/resources/dataFiles/123.json,但.../resources/dataFiles/下的唯一文件是entities.zip。

如果此問題超出了MVC框架的範圍,我正在使用Tomcat 7.0。

+0

所以,你希望Spring把解壓'entities.zip',讓您的特定文件中的條目,併發送? – 2014-09-19 15:39:16

+0

我仍然不確定你在問什麼。 'entities.zip'中沒有'123.json'。有一個'123.json'的_entry_,但該條目僅作爲整個'.zip'文件的一部分。你總是可以自己壓縮'123.json'。 – 2014-09-19 15:46:08

+0

對不起@SotiriosDelimanolis,我試圖澄清我的編輯更多,但你的第一個評論是正確的。我想壓縮所有10,000個文件,並將它們放在一個壓縮存檔下,然後Spring將其視爲一個文件夾,以便可以提供單個文件。我在問題中鏈接的模塊完全是這樣的(但我沒有使用節點)。 – lebolo 2014-09-19 15:54:42

回答

1

我不確定是否有一個Spring的開箱即用組件可以做到這一點,但是您可以創建一個獨立的Servlet來處理靜態資源的傳入請求,那麼這個servlet會解析文件名,並從壓縮文件中動態讀取正確的Zip條目並將內容返回給Response的OutputStream。看一看:

sample code