iT邦幫忙

2023 iThome 鐵人賽

DAY 26
0

SFTPGO 是可以透過 SFTP, SCP, FTP 等協定來安權的傳輸檔案到後端的儲存空間
不論是 AWS S3 或 GCP Cloud Storage 或 Local 端的儲存空間都能夠用來當作後端使用
且他支援非常多種驗證方式有非常好的靈活性
今天就來用 SFTPGO 來建立上傳工具吧

SFTPGO 運作模式

SFTPGO 據我所知可以使用這兩種方式來上下載檔案

  1. 直接以 User 的 Credentials 進行操作
    這種方法通常是使用到 Local 上進行存取
    類似 SMB 透過服務本身的帳號的權限來進行相對應的操作
    https://ithelp.ithome.com.tw/upload/images/20231011/20162773HwfD9fqaLh.png
  2. 透過預先設定好的 TOKEN 來進行操作
    這種方法是 SFTPGO 上會有連接到雲端 (AWS GCP)的 TOKEN
    而 SFTPGO 的 User 上下傳檔案時是透過這組 TOKEN 的 Service Account / Role 來進行操作
    也就是說 User A 對 GCP Cloud Storage 進行上傳 在 GCP 上看到的紀錄會是 TOKEN A 的 Service Account 進行 Create Object 的操作
    https://ithelp.ithome.com.tw/upload/images/20231011/20162773gH33J2aoWY.png

今天會用到的連接方法會使用第一種 在 Local 端上存取

Install SFTPGO

SFTPGO 要來安裝到 OpenMediaVault(OMV) 上 方便操作
但 OMV 的系統版本是非常老的版本 還在 Debian 6
Debian 6 能裝的 golang 版本是 1.15.x
SFTPGO 要使用的版本要求 1.20.X 所以沒辦法透過本機直接執行 SFTPGO
所以這時候就來用 Docker 跑 Container 來避開這個問題:D
先來安裝 Docker

apt-get update
apt-get install docker -y

安裝完後就來啟動 Docker 順便設定每次開機都會開啟 docker service
再 Pull SFTPGO Image 下來

systemctl enable docker
service docker start
docker pull drakkan/sftpgo:v2.5.4-alpine

接著就來讓 SFTPGO 跑起來吧
這邊用 -v 指定 Navidrome 的音樂路徑當作等等要使用的後端存放點
-p 指定 8080 為 SFTPGO 的網頁介面 Port 2022 為檔案傳輸使用的 Port
--restart 讓 SFTPGO 在除了手動停止以外都會自動重啟

docker run -it --name sftpgo -p 8080:8080 -p 2022:2022 --restart unless-stopped -v /srv/dev-disk-by-uuid-b53f3a19-0347-479d-95f5-2e0f517ce0a8/navidrome:/navidrome-upload "drakkan/sftpgo:v2.5.4-alpine"

讓 SFTPGO 跑起來後就到網頁上開始設定

可以先按 Ctrl + P 再按 Ctrl + Q 離開 Container 的 Shell
https://ithelp.ithome.com.tw/upload/images/20231011/20162773Z8X3Cw9L0S.png
這邊先來註冊管理員的帳號
註冊完後就到 Folders 準備建立存放點的連線
https://ithelp.ithome.com.tw/upload/images/20231011/20162773w86qiDv3q2.png
Storage 選擇 Local 並且打上docker run -v :後的路徑
https://ithelp.ithome.com.tw/upload/images/20231011/20162773EL2GS1wbYn.png
輸入完後就按下 Submit 交出去
接著到 Group 這邊建立一個 Navidrome 的 Group
在下方的 Virtual Folder 打上路徑名稱和選擇剛剛建立的存放點
這邊設定的路徑名稱是使用者會看到的路徑名稱

https://ithelp.ithome.com.tw/upload/images/20231011/20162773uf6hyVGoqO.png

接著來到 User 這邊來建個使用者
https://ithelp.ithome.com.tw/upload/images/20231011/20162773In4SBwiYLq.png
這邊我們輸入帳號 + 密碼之後再把 Primary Group 選到 Navidrome 就可以 Submit 了
接下來就到使用者端做測試吧
先從右上角登出或用無痕到 SFTPGO 的登入頁面
https://ithelp.ithome.com.tw/upload/images/20231011/20162773Xkcx2f2p7E.png
登入進來之後就會看到 /upload 這個路徑了
來把測試的的歌丟上去 Try Try 看
https://ithelp.ithome.com.tw/upload/images/20231011/20162773N9t5jY2bCR.png
這邊因為 SFTPGO 沒有支援資料夾上傳 所以要先建立資料夾 ==
廢話不說 到 Navidrome 檢查看看檔案能不能正常使用
https://ithelp.ithome.com.tw/upload/images/20231011/201627735oHDpjYVf3.png
好棒好蚌 可以開始聽歌了 3日發燒友達成


上一篇
Day25 OpenMediaVault 提供 NFS 掛載
下一篇
Day27 SFTPGO 建立簡單的 Pipeline 來處理檔案吧
系列文
地端建置大雜燴-下從網路線上到Grafana的建置之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言