2023年,AWS出了个mountpoint的工具: github.com/awslabs/mou…
sudo apt-get install automake autotools-dev \fuse g++ git libcurl4-gnutls-dev libfuse-dev \libssl-dev libxml2-dev make pkg-config
git clone github.com/s3fs-fuse/s…
cd s3fs-fuse
sudo ./autogen.sh
sudo ./configure
sudo make
sudo make install
sudo vim /etc/passwd-s3fs ##添加key如下 key format: AKIAJExxxxxxxxxxxxxxxxxxxxxxx:Gcdpi2axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
sudo chmod 640 /etc/passwd-s3fs
sudo mkdir -p /s3/folder-name
sudo s3fs -o allow_other bucket-name /s3/folder-name
##中国区AWS S3挂载路径不同:
sudo s3fs -o allow_other bucket-name /s3/folder-name -o url=s3.cn-north-1.amazonaws.com.cn
##取消挂载:
sudo umount -l /s3/folder-name
##写入/etc/fstab 实现开机自动挂载:
sudo vim /etc/fstab
##添加内容如下
bucket-name /s3/folder-name fuse.s3fs _netdev,allow_other 0 0
参考文档: www.whiteboardcoder.com/2017/12/how…
2021-9-6 后来遇到需要使用IAM Role而不是Key挂载S3的情况,尝试了网上的很多方式,都无法成功。下面是曾经测试过的命令,EC2已经添加了role access s3的权限。另有一说是EC2可以尝试用Amazon Linux AMI,也许可行,因为Amazon的AMI对于AWS其它服务的集成性更好,我的测试机器使用的是Ubuntu。
sudo s3fs -o allow_other iam_role=auto data /s3/data/
sudo s3fs -o iam_role=“auto” data /s3/data/
sudo s3fs -o iam_role=EC2-S3-Access lab /s3/lab/
sudo s3fs data /s3/data/ -o iam_role=“EC2-S3-Access” -o url=“ s3-us-east-1.amazonaws.com” -o endpoint=us-east-1 -o dbglevel=info -o curldbg
sudo s3fs data /s3/data/ -o iam_role=‘EC2-S3-Access’ -o url=“ s3-us-east-1.amazonaws.com” -o endpoint=us-east-1 -o dbglevel=info -o curldbg
s3fs -o iam_role=“EC2-S3-Access” -o url=“ s3-us-east-1.amazonaws.com” -o endpoint=us-east-1 -o dbglevel=info -o curldbg -o allow_other -o use_cache=/tmp data /s3/data/
sudo s3fs -o iam_role=EC2-S3-Access -o url=“ s3-us-east-1.amazonaws.com” -o endpoint=us-east-1 -o dbglevel=info -o curldbg -o allow_other -o use_cache=/tmp data /s3/data/
sudo s3fs -o iam_role=“test-role” -o url=“ s3-eu-central-1.amazonaws.com” -o endpoint=eu-cal-1 -o dbglevel=info -o curldbg -o allow_other -o use_cache=/tmp test-bucket /upload
这个商业版的s3fuse看文档显示支持通过EC2 role访问S3: objectivefs.com/ 但是鉴于license 费用比较贵,我后来采用AWS的storage gateway这个服务,创建file gateway,然后将S3通过NFS方式挂载到服务器上。