:::

ownCloud要如何直接編輯任意純文字檔:符號連結的做法 / How to Edit Any Plain Text File in ownCloud? A Symbolic Link Solution

image

為了管理伺服器上的檔案,我嘗試在伺服器上安裝ownCloud以便直接使用網頁來管理。ownCloud的Text Editor套件雖然可以直接在線上編輯txt、html等檔案,但是像JSP、properties等其他副檔名的檔案就不行編輯了。這時候我們可以用Linux的符號連結ln功能來創建一個.txt字尾的連結,這樣子就能夠讓ownCloud在線上編輯這個檔案。


在Debian安裝ownCloud / Install ownCloud on Debian

oc-4c-slogan-150dpi-300x156

我這次不是使用直接ownCloud的虛擬應用樣板,而是需要在既有的Debian伺服器上安裝ownCloud。用預設的apt-get是找不到owncloud來安裝的,我們需要將ownCloud的儲存庫加入apt當中。主要做法是參考這篇How to install ownCloud 8 on Debian 8 (Jessie),我將Bash整理之後如下:

echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/community/Debian_8.0/ /' >> /etc/apt/sources.list.d/owncloud.list
cd /tmp
wget http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_8.0/Release.key
apt-key add - < Release.key
apt-get update
apt-get install owncloud -y

安裝完成之後,就能夠直接用瀏覽器以主機位置後面加上owncloud來連線。

  • http://[your-server-ip]/owncloud/

登入的帳號與密碼則是跟Linux設定的帳號相同。預設安裝之後還有一些安全性配置需要調整,但這不是本篇重視的問題,在此就先略過。

ownCloud編輯純文字檔案 / Edit a plain text file 

image

資料夾配置完成之後,我們可以直接從ownCloud看到有權限讀取的檔案。例如「ui-html_zh_TW.properties」是我們系統中常常需要編輯的檔案。

image

可是一般這樣的檔案在點選之後會變成下載,不能直接編輯。

image

只有點選副檔名為「txt」或「html」的檔案,而且還擁有寫入權限(w),就能夠直接在ownCloud上編輯。

可是系統檔案名稱不能隨意變更,那麼要怎麼做好呢?這時候就要可以使用Linux的特殊功能:連結

用連結檔案來建立txt副檔名的分身 / Use "ln" to create a file link

Linux的連結跟Windows的捷徑有點像,但本質上相差很多。連結又分成實體連結跟符號連結,一般比較常用的是類似捷徑的後者,詳細的原理就請看鳥哥的說明吧。

在Linux建立符號連結 / Create a Symbolic Link in Linux

以下我們利用符號連結,為原本不能在ownCloud編輯的「ui-html_zh_TW.properties」建立一個副檔名為「txt」、而且可以編輯的「ui-html_zh_TW.properties.txt」分身。讓我們們看看怎麼操作:

image

首先,在Linux的指令端利用cd指令切換到該檔案的目錄。然後我們欲將「ui-html_zh_TW.properties」建立一個符號連結,名為「ui-html_zh_TW.properties.txt」,指令如下:

ln -s ui-html_zh_TW.properties ui-html_zh_TW.properties.txt

image

出現了標示為天藍色的符號連結了。

在ownCloud中編輯檔案 / Edit the file in ownCloud

image

接下來再回到ownCloud中,在同樣的資料夾底下,會出現剛剛新增的符號連結。不過ownCloud不會辨識他的檔案類型,只會依照副檔名「ui-html_zh_TW.properties.txt」把它當做可以編輯的對象。

image

點進去之後就可以編輯囉。因為我們使用符號連結的關係,編輯之後的結果會完全反映在原始「ui-html_zh_TW.properties」檔案上,也就是等同編輯「ui-html_zh_TW.properties」。


結語 / Conclusion

老實說,這不是一個很好的解決方法。因為我們還需要額外新增符號連結,才能讓檔案可在ownCloud中編輯。理想方案是修改ownCloud的Text Editor套件,擴充可以編輯的副檔名。我找到ext-modelist.js似乎有這樣的設計,其實裡面也已經包含了本篇使用的副檔名「properties」,但不知為何仍然不能在線上編輯。

目前是因為需要時常編輯的檔案並不多,我只要為特定幾個檔案加上符號連結即可。至於圖片的管理只需要下載與上傳等基本功能即可,不需要線上編輯。在這些需求條件之下,ownCloud已經相當好用了。

未來如果有更多線上編輯需求的話,再來繼續研究吧。做什麼事情都不會一次到位,這次就先做到這裡吧。