如何將 Amazon S3 掛載為雲端檔案分享的磁碟機
在 Amazon S3 中,資料儲存於”儲存桶”中,這是資料儲存的基本單位。您可以透過 AWS 網頁介面,為使用者設定存取儲存桶的權限。 若您希望無需透過網頁瀏覽器即可存取 AWS S3,可允許使用者使用 Linux、Windows 或 macOS 等作業系統的介面。
在命令列介面中存取 Amazon S3 雲端儲存空間,在多種情境下都相當便利。這對於沒有圖形使用者介面 (GUI) 的作業系統特別有用,尤其是運行於公有雲中的虛擬機器 (VM),以及用於自動化執行諸如複製檔案或建立 雲端資料備份.
請繼續閱讀,了解如何將 Amazon S3 儲存桶掛載為 Linux 系統上的檔案系統,以及在 Windows 和 macOS 系統上掛載為本地目錄的磁碟機,以便無需透過網頁瀏覽器即可使用 AWS S3。
如何在 Linux 中將 S3 儲存桶掛載為檔案系統
AWS 提供了一組 API,讓您能透過第三方應用程式操作 Amazon S3 儲存桶。 您甚至可以利用 Amazon API 自行開發應用程式,與 S3 儲存桶進行互動。您可以建立一個應用程式,讓其使用相同的路徑將檔案上傳至 Amazon S3 雲端儲存空間,並透過 S3FS 將 S3 儲存桶掛載至同一目錄,使每台電腦都能使用相同的路徑。在本教學中,我們將使用 S3FS 將 Amazon S3 儲存桶掛載為磁碟機,並對應至 Linux 目錄。
S3FS 這是一款基於 FUSE(使用者空間檔案系統)的特殊解決方案,旨在將 S3 儲存桶掛載至 Linux 作業系統的目錄中,其運作方式類似於您掛載 CIFS/NFS 分享資料夾 作為網路磁碟機。S3FS 是一套免費且開源的解決方案。
在使用 S3FS 將 Amazon S3 雲端儲存掛載至您的 Linux 電腦後,您即可使用 cp, mv, rm,以及 Linux 控制台中的其他指令,用以操作檔案,就像您處理已掛載的本地或網路磁碟機一樣。
讓我們以 Ubuntu 18.04 LTS 為例,將 Amazon S3 儲存桶掛載至 Linux 目錄。本教學使用的是全新安裝的 Ubuntu 系統。您可運用相同原則來處理較新版本。
- 更新儲存庫樹:
sudo apt-get update - 若您的 Linux 系統上已安裝任何現有的 FUSE,請在配置環境並安裝 fuse-f3fs 之前先移除該 FUSE,以避免衝突。由於我們使用的是全新安裝的 Ubuntu,因此我們不會執行
sudo apt-get remove fuse用於移除 FUSE 的指令。 - 安裝 s3fs 來自線上軟體儲存庫:
sudo apt-get install s3fs - 您需要產生該 存取金鑰 ID 以及 秘密存取金鑰 在您的帳戶(IAM 使用者)的 AWS 網頁介面中。該 IAM 使用者必須具備 S3 的完整存取權限。您可以使用此連結:
https://console.aws.amazon.com/iam/home?#/security_credentials註: 建議您以權限受限的一般使用者身分掛載 Amazon S3 儲存桶,並僅將具備管理權限的使用者用於產生金鑰。
- 這些金鑰是存取 AWS API 所必需的。您必須具備管理員權限,才能產生 AWS 存取金鑰 ID 和 AWS 秘密存取金鑰。若您沒有足夠的權限,請請您的系統管理員為您產生 AWS 金鑰。系統管理員可以在 用戶 AWS 控制台中的該區段,位於 安全憑證 點擊 建立存取金鑰 按鈕。

- 在 建立存取金鑰 彈出視窗,點擊 下載 .csv 檔案 檔案 或點擊 顯示 根據 秘密存取金鑰 列名稱。這是您唯一能在 AWS 網頁介面中查看秘密存取金鑰的情況。請將 AWS 存取金鑰 ID 和秘密存取金鑰妥善保存於安全之處。

- 您可以使用 Microsoft Office 365 Excel 等軟體,開啟已下載且包含存取金鑰的 CSV 檔案。

- 返回 Ubuntu 終端機,建立一個配置檔案,用以儲存透過 S3FS 掛載 S3 儲存桶所需的 AWS 存取金鑰和秘密存取金鑰。執行此操作的指令如下:
echo ACCESS_KEY:SECRET_ACCESS_KEY > PATH_TO_FILE變更 ACCESS_KEY 您的 AWS 存取金鑰以及 SECRET_ACCESS_KEY 至您的秘密存取金鑰。
在此範例中,我們將包含 AWS 金鑰的設定檔儲存於使用者的主目錄中。請務必將此金鑰檔案儲存於安全之處,確保未經授權者無法存取。
echo AKIA4SK3HPQ9FLWO8AMB:esrhLH4m1Da+3fJoU5xet1/ivsZ+Pay73BcSnzP > ~/.passwd-s3fs - 檢查鍵值是否已寫入檔案:
cat ~/.passwd-s3fs - 為該檔案設定正確的權限: passwd-s3fs 儲存存取金鑰的檔案:
chmod 600 ~/.passwd-s3fs - 建立將用作 S3 儲存桶掛載點的目錄(掛載點)。在此範例中,我們將在使用者主目錄中建立名為”Amazon 雲端磁碟 S3″的目錄。
mkdir ~/s3-bucket您也可以使用現有的空資料夾。
- 本操作指南中使用的儲存桶名稱是 blog-bucket01. 該 text1.txt 檔案已上傳至我們的 blog-bucket01 在將儲存桶掛載至 Linux 目錄之前,請先將檔案存放於 Amazon S3 中。不建議使用點號 (.) 在桶名稱中。

- 現在來掛載這個儲存桶。請使用以下指令設定儲存桶名稱、用作掛載點的目錄路徑,以及包含 AWS 存取金鑰和秘密存取金鑰的檔案。
s3fs bucket-name /path/to/mountpoint -o passwd_file=/path/passwd-s3fs就我們的情況而言,我們用來掛載儲存桶的指令是:
s3fs blog-bucket01 ~/s3-bucket -o passwd_file=~/.passwd-s3fs - 儲存桶已安裝完成。我們可以執行指令來檢查我們的儲存桶(blog-bucket-01) 已安裝至 s3-bucket 目錄:
mount | grep bucketdf -h | grep bucket - 讓我們檢查該儲存桶已掛載的目錄內容:
ls -al ~/s3-bucket - 現在,您可以在硬碟上嘗試建立一個新檔案,並在 Linux 終端機中將該檔案複製到 S3 儲存桶中。
echo test2 > test2.txtcp test2.txt ~/s3-bucket/ - 重新載入 AWS 網頁,該網頁會顯示您儲存桶中的檔案。您應該會看到新的 test2.txt 透過 Linux 控制台,利用該 S3 儲存桶所掛載的目錄,將檔案複製到該儲存桶中。

如何在 Linux 上將 S3 儲存桶設定為開機自動掛載
若要在您的 Linux 機器上使用 S3FS 設定 S3 儲存桶的自動掛載,您必須建立 passwd-s3fs 檔案位於 /etc/passwd-s3fs,這是標準位置。建立此檔案後,您就不需要使用 -o passwd_file 請手動使用此鍵設定包含您的 AWS 金鑰的檔案位置。
- 建立 /etc/passwd-s3fs 檔案:
vim /etc/passwd-s3fs註: 如果 vim 您的 Linux 系統尚未安裝文字編輯器,請執行
apt-get install vim指令。 - 請依照上述說明,輸入您的 AWS 存取金鑰和秘密存取金鑰。
AKIA4SK3HPQ9FLWO8AMB:esrhLH4m1Da+3fJoU5xet1/ivsZ+Pay73BcSnzcP
作為另一種選擇,您可以將金鑰儲存於 /etc/passwd-s3fs 使用以下指令建立檔案:
echo AKIA4SK3HPQ9FLWO8AMB:esrhLH4m1Da+3fJoU5xet1/ivsZ+Pay73BcSnzcP > /etc/passwd-s3fs - 為該項目設定所需的權限 /etc/passwd-s3fs 檔案:
chmod 640 /etc/passwd-s3fs - 編輯 FUSE 設定檔:
vim /etc/fuse.conf - 取消註解該 user_allow_other 若您希望允許其他使用者(非 root 使用者)在您的 Linux 機器上使用 Amazon S3 進行檔案分享,請設定此字串。

- 開啟 /etc/fstab 使用文字編輯器:
vim /etc/fstab - 請在檔案末尾加入以下這行:
s3fs#blog-bucket01 /home/user1/s3-bucket/ fuse _netdev,allow_other,url=https://s3.amazonaws.com 0 0
- 儲存已編輯的版本 /etc/fstab 儲存檔案並關閉文字編輯器。
註: 若要設定擁有者與群組,您可以使用
-o uid=1001 -o gid=1001 -o mp_umask=002參數(請根據您的設定,修改使用者 ID、群組 ID 及 umask 的數位值)。若要啟用快取,請使用-ouse_cache=/tmp參數(設定自訂目錄,而非 /tmp/ (如有需要)。若儲存桶最初未能成功掛載,您可以透過 retries 參數設定掛載該儲存桶的重試次數。例如,retries=5共攻入五次達陣。 - 重新啟動 Ubuntu 電腦,以檢查 S3 儲存桶是否會在系統開機時自動掛載:
init 6 - 請等待您的 Linux 電腦完成開機。
- 您可以執行指令,以檢查 AWS S3 儲存桶是否已自動掛載至 s3-bucket Ubuntu 開機時的目錄。
mount | grep bucket
df -h | grep bucket
ls -al /home/user1/s3-bucket/
在我們的案例中,Amazon 雲端儲存服務 S3 已在 Ubuntu 開機時自動掛載至指定的 Linux 目錄(請參見下圖)。此設定已成功套用。
S3FS 亦支援與 rsync 以及檔案快取,以減少流量。
在 Windows 中掛載 Amazon S3 雲端儲存空間
你可以試試看 wins3fs,這是一種與 S3FS 等效的解決方案,可用於在 Windows 中將 Amazon S3 雲端儲存掛載為網路磁碟。不過,在本節中,我們將使用 rclone. Rclone 是一款命令列工具,可用於掛載和同步雲端儲存空間,例如 Amazon S3 儲存桶, Google 雲端儲存, Google 雲端硬碟, Microsoft OneDrive、DropBox 等。
Rclone 這是一款免費的開源工具,可從官方網站及 GitHub 下載。您可以下載所需的版本 rclone 請透過以下其中一個連結:
我們來使用官方網站上的直接連結:
您可以將此工作流程用於較新版本的 rclone 在它們發布後。以下操作是在命令列介面中執行的,對於在伺服器或虛擬機器上使用 Windows 卻未啟用圖形使用者介面的使用者而言,這些操作可能會有所幫助。
- 開啟 Windows PowerShell 作為 管理員.
- 建立用於下載和儲存檔案的目錄 rclone 檔案:
mkdir c:rclone - 前往已建立的目錄:
cd c:rclone - 下載 rclone 請使用上述的直接連結。若您下載的是其他版本,請編輯連結中的版本號。
Invoke-WebRequest -Uri "https://downloads.rclone.org/v1.51.0/rclone-v1.51.0-windows-amd64.zip" -OutFile "c:rclonerclone.zip" - 從已下載的壓縮檔中解壓縮檔案:
Expand-Archive -path 'c:rclonerclone.zip' -destinationpath '.' - 檢查目錄中的內容:
dir - 檔案已解壓縮至 C:rclonerclone-v1.51.0-windows-amd64 在此情況下。
註: 在此範例中,該的名稱是 rclone 解壓縮檔案後的目錄是 rclone-v1.51.0-windows-amd64. 然而,不建議使用點號(.) 在目錄名稱中。您可以將該目錄重新命名為 rclone-v1-51-win64,例如。
- 現在將解壓縮後的檔案複製到 C:rclone 為避免目錄名稱中出現點號:
cp C:rclonerclone-v1.51.0-windows-amd64*.* C:rclone - Run rclone 在設定模式下:
.rclone.exe config - 此設定工具在命令列模式下以精靈形式運作。您必須在精靈的每個步驟中選取所需的參數。
- 類型
n並按下Enter要選取 新的遠端選項.n/s/q>
n
- 請輸入您的 S3 儲存桶名稱:
名稱:>
blog-bucket01 - 輸入名稱後,請選擇要設定的雲端儲存類型。輸入
4以選取 Amazon S3 雲端儲存服務。儲存>
4 - 選擇您的 S3 服務供應商。請輸入
1以選取 Amazon Web Services S3。供應商>
1 - 從執行階段取得 AWS 憑證(true 或 false)。
1預設使用 (false)。按下Enter不輸入任何內容即可使用預設值。env_auth>
1 - 請輸入您的 AWS 存取金鑰:
access_key_id>
AKIA4SK3HPQ9FLWO8AMB - 請輸入您的秘密存取金鑰:
- 要連線的區域。 歐盟(愛爾蘭) eu-west-1 在此範例中,我們的 bucket 使用的是,因此我們應該輸入
6. - S3 API 的端點。若使用 AWS,請留空以採用該區域的預設端點。按下
Enter.端點>
- 位置限制必須設定為與”地區”相符。類型
6要選取 歐盟(愛爾蘭)區域 “eu-west-1”.位置限制>
6 - 建立分桶以及儲存或複製物件時,會使用預設的 ACL。按下
Enter以使用預設參數。acl>
- 請指定 伺服器端加密演算法 在將此物件儲存至 S3 時使用。在我們的情況下,加密功能已停用,因此必須輸入 1(None)。
- 若使用 KMS ID,您必須提供金鑰的 ARN。由於未使用加密功能,請輸入
1(無)。sse_kms_key_id>
1 - 選擇將新物件儲存至 S3 時要使用的儲存類別。請輸入字串值。標準儲存類別選項 (
2) 在我們的情況下是合適的。 - 要編輯進階設定嗎? (是/否)
是/否>
n - 請檢查您的設定與輸入內容
y(是) 如果一切都沒問題的話。 - 類型
q以退出設定精靈。e/n/d/r/c/s/q>
q - Rclone 目前已設定為可與 Amazon S3 雲端儲存服務配合使用。請確保您的 Windows 電腦上的日期和時間設定正確。否則,當您將 S3 儲存桶掛載為 Windows 電腦的網路磁碟機時,可能會發生錯誤: 時間設定可能有誤。請求時間與當前時間之間的差異過大.
- Run rclone 在該目錄中
rclone.exe查看位置並列出您的 AWS 帳戶中可用的儲存桶:.rclone.exe lsd blog-bucket01: - 您可以輸入
c:rclone至Path環境變數。它可讓您執行 rclone 無需切換至存放 rclone.exe 的目錄,即可從任何目錄執行。 - 如上圖所示,Amazon S3 雲端儲存的存取權限已正確設定,並顯示了儲存桶清單(包括 blog-bucket01 (本教學中使用的)。
- 安裝 巧克力味,這是一款 Windows 套件管理工具,可用於從線上儲存庫安裝應用程式:
Set-ExecutionPolicy Bypass -Scope Process -Force; `iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) - WinFSP(Windows 檔案系統代理)是 Linux FUSE 在 Windows 平台上的對應方案,它速度快、穩定,並允許您建立使用者模式檔案系統。
從 Chocolatey 儲存庫安裝 WinFSP:
choco install winfsp -y - 現在,您可以將 Amazon S3 儲存桶掛載至 Windows 系統,作為網路磁碟機使用。讓我們來掛載這個 blog-bucket01 作為 S:
.rclone mount blog-bucket01:blog-bucket01/ S: --vfs-cache-mode full其中第一個”blog-bucket”是指在 rclone 設定精靈的第一步中輸入的儲存桶名稱,而緊接在”:”之後定義的第二個”blog-bucket”,則是於 AWS 網頁介面中設定的 Amazon S3 儲存桶名稱。

- 列出所有已連接的磁碟和分割區:
gdr -PSProvider 'FileSystem' - 檢查已映射網路磁碟機的內容:
ls S: - S3 儲存桶現已掛載為網路磁碟機 (S:)。您可以看到三個 txt 檔案儲存於 blog-bucket01 透過另一個 Windows PowerShell 或 Windows 命令列執行個體,將資料上傳至 Amazon S3 雲端儲存空間。

如果您的 Windows 具備圖形使用者介面,您可以透過該介面將檔案下載至或上傳至 Amazon S3 雲端儲存空間。若您透過 Windows 介面(圖形使用者介面或命令列介面)複製檔案,資料將在片刻之間同步完成,屆時您將在 Windows 介面和 AWS 網頁介面中皆看到該新檔案。
如果您按下 Ctrl+C 或關閉該 CMD 或 PowerShell 視窗,其中 rclone 正在執行(該 CMD 或 PowerShell 執行個體中會顯示”已啟動 clone 服務”),您的 Amazon S3 儲存桶將與掛載點(此處為 S:)斷開連接。
如何在 Windows 開機時自動掛載 S3 儲存桶
當 S3 儲存桶在 Windows 開機時自動掛載為網路磁碟機,使用起來會非常方便。讓我們來了解如何在 Windows 中設定 S3 儲存桶的自動掛載。
- 建立 rclone-S3.cmd 位於 C:rclone 目錄.
- 將該字串加入 rclone-S3.cmd 檔案:
C:rclonerclone.exe mount blog-bucket01:blog-bucket01/ S: –vfs-cache-mode full
- 儲存此 CMD 檔案。您可以執行此 CMD 檔案,而無需手動輸入指令來掛載 S3 儲存桶。
- 複製該 rclone-S3.cmd 將檔案移至所有使用者的”啟動”資料夾中:
C:ProgramDataMicrosoftWindowsStart MenuProgramsStartUp
- 此外,您也可以建立一個捷徑至 C:WindowsSystem32cmd.exe 並在目標屬性中設定掛載 S3 儲存桶所需的參數:
C:WindowsSystem32cmd.exe /k cd c:rclone 並執行 rclone mount blog-bucket01:blog-bucket01/ S: –vfs-cache-mode full
- 接著將版本更新後的捷徑新增至 Windows 啟動資料夾:
C:ProgramDataMicrosoftWindowsStart MenuProgramsStartUp
這有個小小的缺點——一個顯示”服務 rclone 已啟動將 S3 儲存桶掛載至 Windows 電腦作為網路磁碟機後,會顯示””這則訊息。您可以嘗試透過 Windows 排程程式或 NSSM 來設定 S3 儲存桶的自動掛載;NSSM 是一款免費工具,可用於建立和設定 Windows 服務及其自動啟動功能。
在 macOS 中將 S3 儲存桶掛載為檔案系統
您可以像在 Linux 中一樣,將 Amazon S3 儲存桶掛載到 macOS 上。您應在 macOS 並設定權限和 Amazon 金鑰。
此範例使用 macOS 10.15 Catalina。您亦可在較新版本中套用此設定原則。S3 儲存桶的名稱為 blog-bucket01, macOS 的使用者名稱是 user1,而用作儲存桶掛載點的目錄是 /Volumes/s3-bucket/.
讓我們一步一步來檢視這項設定。
-
<li>安裝 自釀酒,這是一款用於 macOS 的套件管理工具,可透過線上軟體儲存庫安裝應用程式:
- 安裝 osxfuse:
brew cask install osxfuse - 重新啟動系統:
sudo shutdown -r now - 安裝 S3FS:
brew install s3fs - 安裝 S3FS 後,請為您的 Amazon S3 儲存桶設定存取金鑰和秘密存取金鑰。如果您只需一次性掛載該儲存桶,或是僅會偶爾掛載該儲存桶,則可為當前工作階段定義金鑰:
export AWSACCESSKEYID=AKIA4SK3HPQ9FLWO8AMBexport AWSSECRETACCESSKEY=esrhLH4m1Da+3fJoU5xet1/ivsZ+Pay73BcSnzP - 如果您打算定期使用已掛載的儲存桶,請在 S3FS 所使用的、屬於您的 macOS 使用者帳戶的設定檔中設定 AWS 金鑰:
echo AKIA4SK3HPQ9FLWO8AMB:esrhLH4m1Da+3fJoU5xet1/ivsZ+Pay73BcSnzP > ~/.passwd-s3fs - 如果您有多個儲存桶以及用於存取這些儲存桶的金鑰,請依照以下格式進行定義:
echo bucket-name:access-key:secret-key > ~/.passwd-s3fs - 設定正確的權限,僅允許擁有者進行讀取和寫入:
chmod 600 ~/.passwd-s3fs - 建立一個目錄,用作 Amazon S3 儲存桶的掛載點:
sudo mkdir -p /Volumes/s3-bucket/ - 您必須將您的使用者帳戶設定為所建立目錄的所有者:
sudo chown user1 /Volumes/s3-bucket/

- 使用 S3FS 掛載儲存桶:
s3fs blog-bucket01 /Volumes/s3-bucket/ - 對話方塊中會顯示 macOS 安全警告。請按一下
Open System Preferences以允許 S3FS 應用程式及其相關連線。

- 在 安全性與隱私權 在視窗中點擊鎖頭圖示以進行變更,然後按下
Allow按鈕。
- 請再次執行掛載指令:
s3fs blog-bucket01 /Volumes/s3-bucket/ - 此時會顯示一則彈出式警告訊息: Terminal 希望存取網路磁碟機上的檔案.
- 檢查儲存桶是否已掛載:
mount | grep bucket - 檢查桶內的內容:
ls -al /Volumes/s3-bucket/ - 該儲存桶已成功建立。您可以在該儲存桶中檢視、複製及刪除檔案。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
您可以嘗試透過以下方式,設定在使用者登入時掛載 S3 儲存桶: launchd.
結論
一旦您掌握了如何將 Amazon S3 雲端儲存掛載為檔案系統,並應用於最常見的作業系統上,與 Amazon S3 共享檔案便會更加便利。在 Linux 和 macOS 系統中,可透過 S3FS 將 Amazon S3 儲存桶掛載,而透過 rclone 或在 Windows 中使用 wins3fs。將 Amazon S3 儲存桶掛載至作業系統的本地目錄後,自動執行資料複製至 S3 儲存桶的流程,相較於使用網頁介面會更加方便。
您可透過作業系統的介面,將資料複製至 Amazon S3 以建立備份。您也可以嘗試使用專用的備份應用程式,這些應用程式會透過 AWS API 存取 S3 儲存桶。 NAKIVO Backup & Replication 這是一套完整的数据保護解決方案,內建對 S3 儲存桶作為備份目標的支援。您可以利用此解決方案,將 VMware 虛擬機器、Hyper-V 虛擬機器及 EC2 執行個體中的資料備份至 Amazon S3。
















