还有一种情况,也需要注意,新版的阿里云oss已经不支持用阿里云的域名直接浏览资源了。必须要用自定义域名才可以浏览资源,否则会变成下载。
阿里云官方解释“:
OSS+CDN访问文件直接下载
https://help.aliyun.com/knowledge_detail/39545.html
问题描述:
OSS在配置完CDN后,访问文件链接,文件直接变下载了。
解决方案:
1、首先查看OSS源文件的header头部Content-Type的设置值,比如:页面是text/html,图片是image/jpeg,MP3是audio/mp3,MP4是video/mpeg4等。设置文件Content-Type的方式请参见OSS 如何设置 Content-Type。
2、查看CDN配置的回源host是否使用客户自己的加速域名。不能使用OSS自带的域名,如果使用OSS的自带域名会导致文件强制下载。
3、如上两点修改完毕后,发现访问CDN的URL文件还是强制下载,需要到CDN管理控制台去提交URL刷新或者目录刷新。详情请参见刷新预热。
ossfs 是基于 aliyun OSS 的 fuse 客户端了,所以我们把它用在阿里云上肯定是没有错了,下面来看一篇关于ossfs工具将OSS挂载到阿里云linux系统目录例子,具体的细节如下文介绍。
以Centos为例
下载安装包:
运行安装包:
yum -y localinstall ossfs_1.79.8_centos6.5_x86_64.rpm
写入你需要挂载的OSS bucket名称,Access Key ID 和 Access Key Secret等信息,格式如下
echo bucketname:AccesskeyID:Accesskeysecret > /etc/passwd-ossfs
修改该文件权限
chmod 640 /etc/passwd-ossfs
挂载到系统目录,已/oss目录为例
mkdir /data/oss
启动挂载,请自行修改参数
ossfs bucketname /data/oss -ourl=OSS节点地址 -o allow_other
-o allow_other
为允许非root账户使用此目录
OSSFS发布地址:阿里云论坛
OSSFS官方FAQ:gihub
PS:如何开机自动挂载ossfs
通过 fstab 的方式自动 mount
在 /etc/fstab 中加入下面的命令
ossfs#your_bucket_name your_mount_point fuse _netdev,url=your_url,allow_other 0 0
其中上述命令中的 your_xxx 信息需要根据您的 bucket name 等信息填入。
保存 /etc/fstab 文件。执行 mount -a 命令,如果没有报错,则说明设置正常。
还需要执行下面的命令:
chkconfig netfs on
PS:使用ECS挂载ossfs,如何避免因后台程序扫描文件而产生费用?
程序扫描ossfs挂载的目录,会转换成向OSS的请求,如果请求次数很多,会产生费用(1分钱/1万次)。如果是updatedb,可以通过修改/etc/updatedb.conf让它跳过。具体做法是:
在PRUNEFS =后面加上fuse.ossfs
在PRUNEPATHS =后面加上挂载的目录
PS:使用ossfs上传到OSS的文件Content-Type全是”application/octet-stream”是怎么回事?
ossfs 通过查询 /etc/mime.types 中的内容来确定文件的 Content-Type ,请检查这个文件是否存在,如果不存在,则需要添加:
对于centos可以通过 yum install mailcap 来添加
也可以手动添加,每种格式一行,每行格式为: application/javascript js
service netfs start,netfs服务必须启动,
设置开机启动chkconfig netfs on
文件扩展名Content-Type(Mime-Type)文件扩展名Content-Type(Mime-Type)
.*( 二进制流,不知道下载文件类型)
application/octet-stream
.tif
image/tiff
.001
application/x-001
.301
application/x-301
.323
text/h323
.906
application/x-906
.907
drawing/907
.a11
application/x-a11
.acp
audio/x-mei-aac
.ai
application/postscript
.aif
audio/aiff
.aifc
audio/aiff
.aiff
audio/aiff
.anv
application/x-anv
.asa
text/asa
.asf
video/x-ms-asf
.asp
text/asp
.asx
video/x-ms-asf
.au
audio/basic
.avi