這個問題以前處理過,不過是在ubuntu 16上。今天因為工作需求要在Amazon Linux上再做一下。所以在這個里 整理下方法。注:Amazon Linux 你可以看做是centos操作系統。
其實做完之后才發現這 沒多大區別。操作都是一樣的。
要完成S3掛載到主機需要一些准備工作做:
1.主機安裝s3fs 這個命令。
2.aws IAM 中創建一個擁有S3 權限的賬號。拿到 Access key ID 和 Secret access key(需要有一定的aws操作基礎)
開始安裝s3fs:
這個東西去github 找就行了 找到之后 git clone https://github.com/s3fs-fuse/s3fs-fuse.git
下載完成后編譯安裝 在github下載頁面的read me 有編譯安裝的步驟 這里我在貼一下:
git clone https://github.com/s3fs-fuse/s3fs-fuse.git
cd s3fs-fuse
./autogen.sh
./configure
make
sudo make install
這是centos的安裝方式,當然你也可以在read me找到其他的安裝方式。
install完成之后可以試試看 s3fs 這個命令有沒有被全局安裝,如果沒有 你能在 s3fs目錄下的src目錄里找到它
創建密碼文件
這個是能否掛載和操作S3憑證。一般我把這個文件放在當前用戶家目錄的 .ssh 目錄中名字隨便。
echo Access key ID:Secret access key > .ssh/passwod
chmod 600 .ssh/passwod
掛載命令:
s3fs -o nonempty app-record-dev /home/ec2-user/S3 -o uid=1000 -o gid=1000 -o umask=007 -o passwd_file=/home/ec2-user/.ssh/s3pwd -o url=https://s3.cn-north-1.amazonaws.com.cn -o endpoint=cn-north-1
-o nonempty 后面的是桶的名字;
/home/ec2-user/S3 掛載到本地的路徑
uid gid 這兩個值可以用id 命令查看。加上之后可以避免一些出現莫名其妙的錯誤。
-o url 這個是S3 的外網訪問路徑。
運行掛載命令之后 如果沒有報錯就可以用df -Th 看看 S3是否沒掛載到目錄。
注意:有些時候運行 掛載 命令后沒有報錯,但是一旦查看掛載,或者運行其他的linux命令 會被行死。 這種情況救不回來,只能直接reboot。 然后排錯。
