PS:文章一般都会先首发于我的个人Blog上:S3FS 简介及部署 · TonghuaRoot's BloG. ,有需要的小伙伴可以直接订阅我的Blog,获取最新内容。
S3FS可以把S3 Bucket可以向挂盘一样,挂在本地,适用于Linux和Mac OS,完事复制粘贴写文件啥的跟普通的文件夹几乎没啥差别,体验很棒。
当然,也有一些缺点,这个后面再说。(如果你遇不到它,那就是没缺点,大雾hhh)
如果向上面那么玩,你使用中国区的S3的话,那一定是不成功的。通过debug信息我们可以看到其把请求打到global去了,“那前朝的剑,斩本朝的官”,那自然是行不通的,我们要把region改到中国来。
s3fs s3fs-tonghua s3fs_local -o dbglevel=info -f -o curldbg # 开启debug日志
可以通过如下方式修改endpoint,可以看到已经成功了。
[root@ip-10-0-0-64 /]# s3fs s3fs-tonghua s3fs_local -o url=https://s3.cn-north-1.amazonaws.com.cn [root@ip-10-0-0-64 /]# cd s3fs_local/
[root@ip-10-0-0-64 s3fs_local]# ls
test01_no_version.txt
[root@ip-10-0-0-64 s3fs_local]#
这种情况下,如果我机器重启了,那挂载的S3就没了。所以我们要给他换成/etc/fstab,保证其重启后也无需重新下载。
[ec2-user@ip-10-0-0-64 s3fs_local]$ cat /etc/fstab
#
UUID=8a9e0fcb-f415-4a3f-931d-919fadf8e22c / xfs defaults,noatime 1 1
s3fs#s3fs-tonghua /s3fs_local fuse _netdev,nonempty,allow_other,use_path_request_style,url=https://s3.cn-north-1.amazonaws.com.cn 0 0
[ec2-user@ip-10-0-0-64 s3fs_local]$配置
以上就完成了S3FS的配置。
S3FS本质上是对象存储,其跟块存储还是有区别的,块存储我如果修改一个大文件的话,背后只修改对应的block,但是S3就不一样了,如果我传一个超大的文件,几个G或者T的,那他是会整个往S3传的,既费钱还有一致性的问题。
然后如果我读写频率太高的话,还容易被服务限制。
关于其缺点的话,官方文档说的也比较清楚了,我这头就不再赘述,有兴趣的同学可以去看看:https://github.com/s3fs-fuse/s3fs-fuse
试了下S3FS,有的场景确实很方便,具体使用的话还是要结合自身业务场景,选择合适的数据传输、存储方式。