如何实现论坛中的远程附件功能

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 目前Discuz论坛、phpwind论坛、Wordpress个人网站等都支持远程附件功能。将附件远程存储到oss后,用户访问附件时将直接从oss下载,一方面可以减少网站的流量,同时附件本身的可用性也将提高。

背景

网站远程附件功能是指将用户上传的附件直接存储到远端的存储服务器,一般是通过FTP的方式存储到远程的FTP服务器。目前Discuz论坛、phpwind论坛、Wordpress个人网站等都支持远程附件功能。

将附件远程存储到oss后,用户访问附件时将直接从oss下载,一方面可以减少网站的流量,同时附件本身的可用性也将提高。

一、下载并运行OSS FTP

OSS FTP工具是一个特殊FTP server, 它接收普通FTP请求后,将对文件、文件夹的操作映射为对OSS的操作,从而使得您可以基于FTP协议来管理存储在OSS上的文件。

下载OSS FTP

注意,由于windows不会默认安装Python2.7, 所以安装包中包含了Python2.7, 免去您python安装配置的麻烦,解压即可使用。

由于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远程路径, 填.即可 

具体信息见下图的配置

41f5e5da1953d435c13a5b45506378ce6864bd1b

验证

设置好之后,点击保存的同时,会做测试,测试结果会在页面上方显示,如下图所示表示测试成功

087585fb94227e7049e1858a57602a00f758ef09

发布新文章, 并插入图片

现在开始写一篇新文章,并测试远程附件。创建好文章后,点击添加媒体来上传附件

0762d75600af80e1b1319b5eaaaaeae8268a6d7e


上传附件如下图所示

086e12c30dac636a88ae265ea2949fc190d554b3


上传完附件,点击发布,即可看到文章了



057e1d0f590551f9ec4db9eded313b64df689bcc

 

右键点击图片,通过新建链接来打开图片即可看到图片的URL如下图所示

f7216485d2251b159fb114c971fec1da80e58fb7

通过图片的URL,我们可以判定图片已经成功上传到了OSS

 

 

 

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
4月前
|
JavaScript 前端开发 数据库
如何实现在表单中有多个附件,想实现不同的附件发送给不同指定人员
如何实现在表单中有多个附件,想实现不同的附件发送给不同指定人员
41 0
|
4月前
【博客项目】—用户修改功能(十一)
【博客项目】—用户修改功能(十一)
|
8月前
|
存储 小程序 数据库
云开发(微信-小程序)笔记(十三)---- 注册登陆
云开发(微信-小程序)笔记(十三)---- 注册登陆
80 0
云开发(微信-小程序)笔记(十三)---- 注册登陆
|
8月前
|
小程序 数据可视化 数据库
云开发(微信-小程序)笔记(十七)---- cms(内容管理)及案例
云开发(微信-小程序)笔记(十七)---- cms(内容管理)及案例
359 0
如何实现 请在微信客户端打开链接
如何实现 请在微信客户端打开链接
161 0
如何实现 请在微信客户端打开链接
|
Web App开发 存储 Android开发
如何使用 Google 云端硬盘或附件通过 Gmail 发送视频
如何使用 Google 云端硬盘或附件通过 Gmail 发送视频
|
前端开发 测试技术 API
【测试平台开发】二十、完成编辑页发送接口请求功能
【测试平台开发】二十、完成编辑页发送接口请求功能
【测试平台开发】二十、完成编辑页发送接口请求功能
|
Java
springboot业务功能实战(二十)连接内外网邮箱配置全解析,实现邮件提醒功能
springboot业务功能实战(二十)连接内外网邮箱配置全解析,实现邮件提醒功能
306 0
springboot业务功能实战(二十)连接内外网邮箱配置全解析,实现邮件提醒功能
|
XML 安全 Android开发
安卓应用安全指南 4.3.1 创建/使用内容供应器 示例代码
4.3.1 创建/使用内容供应器 示例代码 原书:Android Application Secure Design/Secure Coding Guidebook 译者:飞龙 协议:CC BY-NC-SA 4.0 使用内容供应器的风险和对策取决于内容供应器的使用方式。