:::

ownCloud結合SFTP規劃 / Integrate SFTP to ownCloud

2014-07-28_212156

ownCloud不僅可以使用網頁管理介面與客戶端軟體來管理儲存在雲端空間的檔案,更可以使用外部儲存支援(External storage support)來連接SFTP,讓管理檔案更加方便。

In ownCloud, user can use not only web interface and client, but also SFTP to manage their files. This article described how to integrate SFTP service in ownCloud.


ownCloud介紹 / ownCloud Introduction

ownCloud是一個開放原始碼的雲端儲存空間服務軟體,以PHP與MySQL運作,可提供類似Dropbox的雲端儲存空間服務。而這個空間大小可由自己的伺服器架設,自己伺服器的硬碟有多大,可以存放多大的資料。ownCloud帳號管理上也非常方便,也可支援LDAP。此外,ownCloud更可安裝多種應用程式(Apps),例如可在onwCloud直接編輯文字的Text Editor,或是檢視現在儲存空間使用狀況的ocDashboard

安裝ownCloud記事 / Install ownCloud Memo

2014-07-28_220140

在安裝上,可選擇從TurnKey Linux下載直接可以使用的ownCloud來架設。不過目前TurnKey ownCloud使用的是4.5.7,上傳以中文名稱開頭的檔案會有問題。後來我們把它更新成ownCloud 6.0之後就能解決這個問題。

難以管理大量檔案的缺點 / Disadvantage: Files Management

原本我打算是使用ownCloud來取代FTP軟體,但是事實上並沒有這麼美好。

ownCloud的網頁管理介面讓人容易上傳、分享與下載,這點毋庸置疑地勝過了FTP。但是當檔案數量一多,或是要上傳的檔案越來越大的時候,ownCloud管理上就會變得非常麻煩。具體來說,ownCloud管理上的缺點包括了:

無法移動已經上傳的檔案 / Cannot Move Files

原本的ownCloud是不能移動已經上傳檔案的位置,只能刪除後重新上傳。ownCloud也不支援多重選取,在管理大量檔案上是很不方便的。

2014-07-28_191509

幸好這個問題可以安裝Files Move應用程式來解決,詳細請看我另外一篇的介紹

上傳大型檔案難以成功 / Hard to Upload Huge File

image

儘管4GB的檔案可以成功,但是20GB的檔案似乎會上傳失敗。因為瀏覽器在上傳檔案的功能上並不一定支援這麼大的檔案,相對的,使用FTP上傳就很妥當,還可以支援續傳。

難以下載多個檔案 / Hard to Download Many Files

2014-07-28_220115

雖然ownCloud可以支援打包下載:將多個檔案壓縮成一個zip檔案提供下載。但是當資料夾檔案數量龐大,或是檔案本身就很大的時候,打包下載很容易失敗。

由上述可知,ownCloud其實還是有很多缺點,管理大量檔案上還是FTP比較方便。但是多虧ownCloud提供了多種的應用程式功能,讓ownCloud可以結合SFTP一起使用,讓我們來看看如何操作吧。


ownCloud整合SFTP規劃

2014-07-28_221510

上圖是我的規劃做法。1到3是配置,4跟5是使用,都在同一台Linux伺服器上運作。

  1. 在伺服器上安裝好ownCloud。
  2. 在伺服器上建立一個帳號,叫做sftp。Linux帳號管理請參考鳥哥
  3. 設置ownCloud的外部儲存,讓所有ownCloud使用者都能上傳檔案到sftp的空間。
  4. 使用ownCloud網頁管理介面或是客戶端軟體來管理。
  5. 以SFTP連線到sftp的帳號空間來管理軟體。

以下談論這個做法的細節。

外部儲存設定 / External Stroage Support

ownCloud本身結合外部儲存空間,將之視為一個資料夾,整合到ownCloud的檔案管理介面中。

支援的類型包括了:

  • Local (本機儲存空間)
  • Amazon S3
  • Dropbox
  • FTP
  • Google Drive
  • OpenStack Object Storage
  • SMB/CIFS
  • ownCloud/WebDAV
  • SFTP
  • iRODS

在本例中,由於sftp帳號的預設家目錄會設置在 「/home/sftp」 ,所以我們也只需要連接到此本機儲存空間即可。

做法是:

  1. 以系統管理員的身份登入ownCloud網頁管理介面。
  2. 在「應用程式」中,啟用External Storage Support2014-07-28_212351
  3. 進入「管理」
  4. 到外部儲存,設定如下:
    資料夾名稱:sftp
    增加儲存區:Local
    設定:/home/sftp
    可用的:所有使用者
    2014-07-28_222817
  5. 這樣子所有使用者底下就會出現一個共用的sftp資料夾了。
    2014-07-28_222143
以SFTP連線到sftp資料夾

這個資料夾可以用SFTP連線方式直接登入sftp帳號來連線。舉例來說,一般連線設定如下:

  • 主機名稱:owncloud.example.org
  • 連接埠:22
  • 帳號:sftp (剛剛設定的)
  • 密碼:(剛剛設定的)

至於連線方式,可以參考我另一篇SFTP連線設定教學

2014-07-28_223824

連線上去之後會直接進入到sftp資料夾當中。

以SFTP連線必須注意到以下幾點:

  • 以SFTP連線是無法管理到ownCloud的其他檔案,只能管理sftp資料夾底下自己的檔案。但一樣可以使用ownCloud的分享功能。我建議是使用SFTP進行大量檔案的上傳與下載,然後再用ownCloud的Files Move移動檔案到自己的ownCloud空間。
  • sftp資料夾是所有帳號共用的空間,因此不能塞太多東西。
為什麼要用SFTP而不是用FTP呢? / Why SFTP?

本文選擇使用SFTP來連線,而不是使用傳統的FTP。主要理由如下:

  • 因為FTP要另外架設FTP伺服器才能運作,SFTP則是Linux預設提供的連線方式,建立帳號即可使用,比較方便。
  • FTP難以在NAT的環境下提供服務,SFTP比較簡單一點。
  • FTP比較快,但是SFTP比較安全。

我個人大多使用SFTP取代原本的FTP,越來越少用FTP了呢。


結語:也可以用WebDAV網路磁碟機 / Conclusion: Try to use WebDAV

2014-07-28_225133

ownCloud本身也提供了WebDAV網路磁碟機的功能,可以直接掛載在Linux、MAC、Windows上,操作操作說明請看此文件

如果可以使用WebDAV來連線的話,就可以用熟悉的Windows介面來管理ownCloud檔案,當然會比SFTP來得方便許多。

雖然我Windows 7不知為何都連不上WebDAV,但是Windows XP倒是簡單地就連上了。真是奇妙。

2014-07-28_230002

有機會研究出來再跟大家分享吧。