在 Linux 上使用 NetDrive 掛載 Amazon S3

閱讀時間 5 分鐘 provider-guide amazon-s3 linux
Steve
SteveSenior Engineer
設定 NetDrive 的實驗性 Linux 版本,將 Amazon S3 儲存桶掛載為一般的 Ubuntu 掛載點,從 GitHub 安裝到首次連線一次搞定。

需要讀取 S3 儲存的測試素材的 CI runner,或是在打包前要從儲存桶拉取發行檔案的建置機器,兩者都希望儲存桶看起來像一個普通目錄,而不是需要有人維護自訂 aws s3 sync 包裝腳本的目標。NetDrive 的 Linux 版本用和其 Windows、macOS 版本相同的方式掛載 S3,不過它是以實驗性版本發行,在你讓正式環境工具依賴它之前,值得先弄清楚該有的預期。

NetDrive drive manager showing Google Drive, S3 and pCloud mounted as drive lettersMounted clouds appearing as native drives in Windows File Explorer

在 Ubuntu 上掛載 S3 儲存桶

NetDrive 讓 Google Drive、OneDrive、S3、SFTP、WebDAV 等在 Windows 與 macOS 上顯示為原生磁碟機 — 不需同步,也不需完整下載。

  • 支援 Ubuntu 16.04 及更新版本
  • 與 Windows、macOS 版本相同的 S3 連線流程
  • 用 ls、cat 或任何預期一般路徑的工具讀取檔案
WindowsmacOS
下載 Linux 版 NetDrive →

免費試用。提供終身與訂閱方案。

為什麼要掛載而不是同步

aws s3 syncs3cmd 這類工具會按排程把物件複製到本機磁碟,這代表本機副本可能與儲存桶不同步,還會讓你為同步過的每樣東西多付一份儲存成本。透過 NetDrive 掛載 S3 就省去這一步:掛載點會直接對儲存桶解析讀取與寫入,所以執行 cat /mnt/s3-bucket/build-artifacts/latest.tar.gz 的腳本拿到的就是目前的物件,中間不需要同步作業。對於 CI 工作和部署腳本之間共用的暫存空間來說,這就消除了整整一類「哪份副本才是最新」的錯誤。

NetDrive 將雲端儲存帳號掛載為本機磁碟機——Linux 版本在掛載點提供的正是相同的核心互動

在 Ubuntu 上安裝 NetDrive

Linux 版 NetDrive 並未收錄在 Ubuntu 的預設套件庫中,因此安裝要透過 GitHub 而非 apt

  1. 前往 github.com/NetDrive/installer,下載對應你 Ubuntu 版本的發行版。
  2. 依照安裝程式儲存庫該版本的發行說明操作——NetDrive 要能掛載任何東西之前,必須先安裝一個驅動元件。
  3. 安裝 NetDrive 套件本身。
  4. 啟動 NetDrive。第一次執行會載入驅動元件,依你系統的權限設定,可能會要求輸入 sudo

由於更新是以 GitHub 發行版的形式釋出,檢查新版本得手動進行,而不是交給 apt upgrade 處理——值得在管理這台機器的運維手冊裡記上一筆。

連接你的 S3 儲存桶

在 NetDrive 執行起來之後:

  1. 開啟 NetDrive 的 Drive Manager,點選 + Add Drive
  2. 從提供者清單中選擇 Amazon S3
  3. 輸入你的 AWS access key 與 secret key,接著選擇目標儲存桶,若只需要掛載其中一個子集,也可以選擇性地指定資料夾前綴。
  4. 設定掛載點——像 /mnt/s3-bucket 這樣的路徑即可,或任何你有寫入權限的空目錄——然後連線。

NetDrive 的 Drive Manager,用於新增與設定雲端磁碟機——Linux 版本用於掛載點的介面概念相同

NetDrive 的 S3 連接器支援 5GB 以上檔案的分段上傳,所以透過掛載點把大型建置產物或封存檔推回儲存桶,不需要你這邊做任何特殊處理。

連線之後,記得從終端機確認掛載是否真的生效——用 mount | grep s3-bucket,或直接對掛載點下 ls——而不是只相信圖形介面。在實驗性版本上養成這個小習慣很值得,尤其是在讓腳本依賴這個路徑存在之前。

確認雲端磁碟機在掛載後成功連線

在 Linux 上要留意的地方

如果你要讓一整批 Ubuntu 機器都採用這套設定,有幾個與 Windows、macOS 版本不同之處值得注意:

  • 獨立的發行節奏:Linux 驅動元件是按自己的時程維護的,所以在 Windows 或 macOS 上修好的問題,不一定會在同一週內出現在 Linux 版本。
  • 沒有套件管理員整合:發行方式目前只有 GitHub release——截至本文撰寫時,沒有 PPA,也沒有 Snap。
  • 實驗性狀態:NetDrive 自家的比較頁面在 Linux 支援旁標了一個星號,意思就是字面上那樣。Windows 和 macOS 才是真正持續強化的目標平台;在信任這個掛載能無人看管地撐過數月之前,請先預留時間測試你實際使用的 Ubuntu 版本與工作負載,並為任何關鍵任務保留備援方案(例如排程同步作業)。

這並不代表 S3 不適合用在 CI runner 或偶爾需要存取儲存桶的開發機上——對這類工作負載來說它其實相當合適。真正該避免的,是「不先測試就把正式環境的流程賭在它身上」這種情境。

總結

在 Ubuntu 上掛載 S3,能讓你獲得和 NetDrive 在 Windows、macOS 上相同、如磁碟機代號般的儲存桶存取方式,只是安裝程式放在 GitHub 而不是 apt 裡。在依賴它處理任何無人看管的工作之前,先針對你實際使用的 Ubuntu 版本測試一遍。若想了解同一個連接器在測試更完整的平台上的表現,可參考在 macOS 上使用 NetDrive 掛載 Amazon S3;若想看更全面的 Linux 概況,可閱讀在 Ubuntu Linux 上使用 NetDrive

— Steve, NetDrive