月归档:五月 2018

网站静态资源迁移到阿里OSS的方法,不需要更改网站源代码

随着网站的运行,网站里的静态资源越来越多,网站不仅包含自身的脚本,样式,配图等静态资源,还包括网站内容的需要上传的图片。图片一多,就需要考虑将图片单独分离出去来减轻服务器的IO读写。自建图片服务器虽然没有技术难度,但是考虑到时间,冗余,备份,性能等成本,最后放弃了自建图片服务器,选择使用阿里的OSS+CDN来做网站的静态资源存储。具体方法如下: 1,首先需要准备一个域名或者已有域名的二级域名来引用站点里的静态资源,单独域名做静态资源的引用的好处网上很多,可以根据需要来处理。 2,根据需要购买阿里的OSS和CDN服务,【阿里的OSS和CDN对域名只需要备案,并不要求必须接入阿里云,简化了许多流程】 3,在oss控制台创建Bucket,用来存储自己的静态资源。由于是通过CDN进行访问,不单独进行访问所以读写权限设置成了私有。在CDN里开启私有Bucket回源即可。 4,将服务器上现有的静态资源同步到阿里OSS创建的Bucket里。阿里针对OSS提供了很多可用的工具,根据需要进行选择即可。【阿里OSS工具汇总页面:https://help.aliyun.com/document_detail/44075.html?spm=5176.doc32204.6.1025.IMy0ZG】最后选择了ossutil这个命令行工具进行数据同步,之所以选择这个工具一是没有依赖,二是本身静态资源也就几百G,没必要使用ossimport2这类的工具进行同步。下载工具后,记得将ossutil的路径添加到Windows的系统环境变量里,方便使用。 在CMD里执行同步命令: x: 切换盘符。 cd x:\files 进入到files文件夹 ossutil64.exe config -e EndPoint -i AccessKeyID -k AccessKeySecret 配置工具替换成自己的id和key ossutil64.exe cp uploads/ oss://bucket/uploads/ -r -f -u –snapshot-path=log/ 将uploads文件夹下的内容全部上传到bucket里的uploads文件夹下【oss其实没有文件夹概念的】. 更多ossutil用法可以使用ossutil64.exe help cp进行查看。 5,就是将上传的图片自动同步到阿里的oss里面。为了不修改网站代码,只能从服务器上保存图片的文件夹入手。对服务器上保存图片的文件夹进行监控,有文件创建就提交到oss上。需要用到一个小工具inotifywait 地址:https://github.com/thekid/inotify-win,需要写一个命令行程序通过管道接收inotifywait的文件地址。 syncfileOSS.exe主要代码 namespace syncfileOSS { class Program … 继续阅读

发表在 Net | 评论关闭