ECS 挂载 OSS,等同于在ECS 上使用内网的 Bucket 域名,不需要收取流量费用,减少接口代码的编写。
CentOS系统 安装
wget http://gosspublic.alicdn.com/ossfs/ossfs_1.80.6_centos7.0_x86_64.rpm yum install ossfs_1.80.6_centos7.0_x86_64.rpm
配置账号访问信息。
将Bucket名称以及具有该Bucket访问权限的AccessKey ID和AccessKey Secret信息存放在/etc/passwd-ossfs文件中。文件的权限建议设置为640。
echo BucketName:yourAccessKeyId:yourAccessKeySecret > /etc/passwd-ossfs chmod 640 /etc/passwd-ossfs
将Bucket挂载到指定目录。
echo bucket-test:LTAIbZcdVCmQ****:MOk8x0y9hxQ31coh7A5e2MZEUz**** > /etc/passwd-ossfs chmod 640 /etc/passwd-ossfs mkdir /tmp/ossfs ossfs bucket-test /tmp/ossfs -o url=http://oss-cn-shanghai-internal.aliyuncs.com -o allow_other #可以使用内网,免去流量费用 、 加 -o allow_other允许非root用户操作避免因权限问题导致无法操作oss目录,如Nginx #挂载后,从本地磁盘拖文件到 /tmp/ossfs 目录下,目录、文件权限将默认为 640,所以需要 chmod 进行设置。后期程序在该目录执行的写操作,将为 755
多Bucket
echo bucket-test-1:LTAIbZcdVCmQ****:MOk8x0y9hxQ31coh7A5e2MZEUz**** > /etc/passwd-ossfs echo bucket-test-2:LTAIbZcdVCmQ****:MOk8x0y9hxQ31coh7A5e2MZEUz**** >> /etc/passwd-ossfs chmod 640 /etc/passwd-ossfs mkdir -p /ossfs/bucket-test-1 mkdir -p /ossfs/bucket-test-2 ossfs bucket-test-1 /ossfs/bucket-test-1 -o url=http://oss-cn-shanghai-internal.aliyuncs.com #可以使用内网,免去流量费用 ossfs bucket-test-2 /ossfs/bucket-test-2 -o url=http://oss-cn-shanghai-internal.aliyuncs.com #可以使用内网,免去流量费用
卸载OSS
umount -l /tmp/ossfs #mkdir 创建的目录 fusermount -u /tmp/ossfs #或者使用该命令卸载
注意:如果 Nginx 无法访问 挂载的 OSS,需要在挂载命令加上 -o allow_other
ossfs 挂载时如何设置权限?
如果要允许其他用户访问挂载文件夹,可以在运行ossfs的时候指定allow_other参数:
ossfs your_bucket your_mount_point -ourl=your_endpoint -o allow_other
为什么使用allow_other参数,仍然不能访问文件?
注意:allow_other是赋予挂载目录其他用户访问的权限,不是里面的文件!如果您要更改文件夹中的文件,请用chmod命令,否则Nginx配置的静态资源无法访问报:failed (1: Operation not permitted)
allow_other默认赋予挂载目录777权限,我想让挂载目录的权限为770,该怎么办?
可以通过umask来设置
使用ossfs上传到OSS的文件的Content-Type全是application/octet-stream
问题分析:上传文件时,ossfs通过查询/etc/mime.types中的内容来设置文件的Content-Type。当该文件不存在时,默认设置为application/octet-stream。
解决方案:请检查这个文件是否存在,如果不存在,则需要添加。
- 通过命令自动添加mime.types文件
- Ubuntu系统使用 sudo apt-get install mime-support 命令添加。
- CentOS系统使用 sudo yum install mailcap 命令添加。
- 手动添加mime.types文件
- 创建mime.types文件
vi /etc/mime.types
- 添加需要的格式,每种格式一行,每行格式为
application/javascript js
。
添加完成后,需要重新挂载OSS。
OSS ossfs 常见问题:https://help.aliyun.com/document_detail/32197.html?spm=a2c6h.13066369.question.6.35cd4d06yDlY3Y