目的:在web應用中附件上傳保存的目錄隨着時間的積累會不斷的增大,對於web應用的備份或者維護工作帶來諸多不便,那麼有沒有什麼辦法可以將附件保存在web應用的外部,而且仍然可以使用http://app/myword.doc 這樣的路徑來進行附件的訪問呢?在某天google其它問題的時候不經意間發現了tomcat對這個問題的解決辦法,這裏做個記錄。
初始環境
- -----------------------------------------------------------
- tomcat目錄結構:
- [$tomcat_home]
- |-- webapps
- |-- ROOT
- 附件的存放目錄(在tomcat外部):
- 假設爲:/usr/local/project/uploads/
- -----------------------------------------------------------
首先,創建軟連接:
- ln -s /usr/local/project/uploads [$tomcat_home]/webapps/ROOT
然後,打開tomcat對軟連接的支持。
tomcat默認不支持軟連接,需要爲Context 增加allowLinking="true"。
Tomcat 7/6/5:
- <Context path="/" docBase="ROOT" debug="0" allowLinking="true"/>
Tomcat 4:
- <Context path="/a" docBase="ROOT" debug="0">
- <Resources className="org.apache.naming.resources.FileDirContext" allowLinking="true"/>
- </Context>