背景
网站远程附件功能是指将用户上传的附件直接存储到远端的存储服务器,一般是通过FTP的方式存储到远程的FTP服务器。目前Discuz论坛、phpwind论坛、Wordpress个人网站等都支持远程附件功能。
将附件远程存储到oss后,用户访问附件时将直接从oss下载,一方面可以减少网站的流量,同时附件本身的可用性也将提高。
一、下载并运行OSS FTP
OSS FTP工具是一个特殊FTP server, 它接收普通FTP请求后,将对文件、文件夹的操作映射为对OSS的操作,从而使得您可以基于FTP协议来管理存储在OSS上的文件。
下载OSS FTP
- windows: ossftp.1.0.1.win.zip
注意,由于windows不会默认安装Python2.7, 所以安装包中包含了Python2.7, 免去您python安装配置的麻烦,解压即可使用。
- Linux/Mac: ossftp.1.0.1.linux.mac.zip
由于Linux/Mac系统默认会安装python2.7或python2.6,所以安装包中不再包含可执行的python, 只包含了相关依赖库。
运行OSS FTP
首先解压之前下载的文件,然后根据环境情况选择不同的运行方式
- windows: 双击运行start.vbs即可
- Linux: 打开终端,运行 bash $ bash start.sh
- Mac: 双击start.command,或者在终端运行 bash $ bash start.command
上述步骤会启动一个FTP server, 默认监听在127.0.0.1的2048端口。
同时,为了方便您对FTP server的状态进行管控,还会启动一个web服务器,监听在127.0.0.1的8192端口。
二、网站远程附件设置
下面以Wordpress为例,介绍如何将附件通过OSS FTP工具远程存到oss。
准备工作
申请OSS账号,并且创建一个 public-read 的bucket。这里需要权限为public-read是因为后面需要匿名访问。
详细步骤
wordpress本身是不支持远程附件功能的,但是可以通过第三方的插件来做远程附件。作者所用wordpress版本为 4.3.1 , 所用插件为 Hacklog Remote Attachment ,以下为具体设置步骤:
- 登录wordpress站点,选择安装插件,搜关键词FTP,选择 Hacklog Remote Attachment 安装
- 设置
1.FTP服务器地址, 即运行ossftp工具的地址,一般填 127.0.0.1 即可;
2.FTP服务的端口号,默认为 2048 ;
3.FTP登录用户名,格式为“ AccessKeyID/BukcetName ”,注意这里的’ / ‘不是’ 或 ‘的意思;
4.FTP的登录密码,为 AceessKeySecrete ,关于AccessKeyID和AceessKeySecrete的获取,可以登录阿里云控制台的Access Key管理进行查看;
5.FTP超时时间, 默认设置为30秒即可;
6.远程基本URL填 http://BucketName.Endpoint/wp;这里测试所用bucket为test-hz-jh-002, 属于杭州区域的,所以这里填写的是:http://test-hz-jh-002.oss-cn-hangzhou.aliyuncs.com/wp
7.FTP远程路径, 填wp表示所有附件都会存储在bucket的wp目录下,注意6和7要对应起来;
8.HTTP远程路径, 填.即可。
具体信息见下图的配置
- 验证
设置好之后,点击保存的同时,会做测试,测试结果会在页面上方显示,如下图所示表示测试成功。
- 发布新文章, 并插入图片
现在开始写一篇新文章,并测试远程附件。创建好文章后,点击添加媒体来上传附件。
上传附件如下图所示:
上传完附件,点击发布,即可看到文章了。
右键点击图片,通过新建链接来打开图片即可看到图片的URL如下图所示:
通过图片的URL,我们可以判定图片已经成功上传到了OSS。