如何基于OSS FTP工具实现远程附件上传到OSS-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

如何基于OSS FTP工具实现远程附件上传到OSS

oss-dev 2015-12-23 17:31:43 20217
前言:
网站远程附件功能是指将用户上传的附件直接存储到远端的存储服务器,一般是通过FTP的方式存储到远程的FTP服务器。带来的好处有以下几点:
      1.减少web服务器的流量
      2.减轻web服务器负载
      3.节约web服务的存储空间
目前Discuz论坛、phpwind论坛、Wordpress个人网站等都支持远程附件功能,为了满足远程附件上传的需求,OSS也已经推出了OSS FTP工具,支持基于FTP协议的访问。

准备工作:
1.申请OSS账号,并且创建一个 public-read的bucket。这里需要权限为 public-read是因为后面需要匿名访问。
2.运行FTP server, 默认监听端口为2048。详情请参考帖子 OSS FTP工具发布啦


注意事项:
1.由于FTP协议是明文传输用户名和密码的,为了防止您的密码泄漏,建议将FTP server和client安装在同一台机器上 。
目前在1.0版本中,考虑到安装部署的简便,FTP server并没有支持TLS加密


基本配置:
由于discuz、phpwind和wordpress用户的配置有很多是相同的,所以抽象出基本的配置放在这里,避免重复。不同论坛中的具体配置可参考相应的配置截图。

1) 需要选择 启用远程附件
2) 启用SSL链接为
3) FTP服务器地址,如 121.40.198.184,  如果您的FTP server在本地,那么填127.0.0.1即可
4) FTP服务的端口号,默认为2048
5) FTP登录用户名,格式为“AccessKeyID/BukcetName”
6) FTP的登录密码,为AceessKeySecrete
7) 被动模式连接,选择默认的“是“即可

Discuz用户如何使用OSS存储远程附件:
作者所用Discuz版本为 Discuz! X3.1,下面是作者的详细设置流程,亲测可行
1.登录Discuz站点,进入管理界面后,先点击全局,再点击上传设置,如下图所示
[attachment=91816]

2.选择远程附件,然后开始设置
[attachment=91817]

1)~7)的配置请参考文章开头的基本配置
[attachment=91818]
8)  远程附件目录,填 . 表示在Bucket的根目录下创建上传目录
9)  远程访问URL, 填http://BucketName.Endpoint即可
    作者这里填的是 http://test-hz-jh-002.oss-cn-hangzhou.aliyuncs.com
     注意BucketName要和Endpoint匹配
10) 超时时间,设置为 0即可,表示服务默认
11) 设置好后,可以点击 测试远程附件,如果成功则会出现如下画面
[attachment=91819]



3.发帖验证
好了,现在我们去论坛发帖试试。 随意找个板块,发贴时上传图片附件如下所示
[attachment=91820]


在图片上右键点击,选择在新建标签页中打开图片,如下所示
[attachment=91821]
根据图片的链接判断图片已经上传到了OSS的bucket test-hz-jh-002中。
Phpwind用户如何使用OSS存储远程附件
作者所用版本为 phpwind8.7, 以下为详细设置流程,其实跟discuz的设置方式基本一致。
1.登录站点。 进入管理界面,依次 选择全局上传设置远程附件
[attachment=91822]
2.开始设置
[attachment=91824]

这里的设置方法和discuz中的设置方法一样,请参考上文
3.发帖验证
phpwind不能在设置好直接点击测试,我们这里发带图片的帖子来验证下
[attachment=91825]
在图片点击右键,在新建标签页中打开图片,可以看到下图
[attachment=91826]
通过图中的URL,我们可以判断图片已经上传到了OSS的test-hz-jh-002 Bucket中。
Wordpress用户如何使用OSS存储远程附件
wordpress本身是不支持远程附件功能的,但是可以通过第三方的插件来做远程附件。作者所用wordpress版本为4.3.1, 所用插件为Hacklog Remote Attachment,以下为具体设置步骤
1.登录wordpress站点,选择安装插件,搜关键词FTP,选择Hacklog Remote Attachment安装
[font='Helvetica Neue', Helvetica, Arial, sans-serif][attachment=91827]

2.设置
[font='Helvetica Neue', Helvetica, Arial, sans-serif][attachment=91828]

其中基本FTP服务器、端口、FTP用户名、FTP密码请参考文章开头的基本配置
远程基本URL: http://BucketName.Endpoint
FTP远程路径:   填wp(可自定义),注意不要加/
HTTP远程路径: .即可
验证:
设置好之后,点击保存的同时,会做测试,测试结果会在页面上方显示,如下图所示表示测试成功
[attachment=91829]



3.开始发表文章并插入图片
[attachment=91830]

点击添加媒体来添加附件
上传附件如下图所示,注意文件名不要包含中文(OSS FTP工具自身是支持中文文件/文件夹的上传和下载的,但是经过测试发现 Hacklog Remote Attachment 插件不支持中文图片的上传 ):
[attachment=91831]



4.上传完附件,点击发布,即可看到文章了
[attachment=91832]

依然通过图片的连接来验证是否上传到了OSS
[attachment=91833]

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



存储 网络安全 对象存储 数据安全/隐私保护
分享到
取消 提交回答
全部回答(14)
  • 生命键盘
    2017-04-01 17:10:45
    Re如何基于OSS FTP工具实现远程附件上传到OSS
    我是买的阿里云的服务器 弄了个论坛  我是小白 弄了一天也没整合好   我把OSSFTP下载到本地启动了  然后下载了FileZilla_3.24.0_win64也放到本地了  然后启动 测试了  传文件 就直接传到OSS了  但是论坛测试不行  是不是需要把OSSFTP上传到我的网站目录下还是说安装到哪里,如果上传到服务器上怎么运行呢 我的网站是liux   ,再就是如果上传到网站目录应该怎么运行    不吝赐教  谢谢了  如果有哪位朋友会的话  请加旺旺号线下帮帮我 不胜感激   旺旺:生命键盘
    0 0
  • 一滴海水
    2017-02-09 22:25:04
    disucz 提示尝试创建目录失败
    为什么我的 discuz 论坛设置完了,尝试创建目录失败
    尝试用ftp工具,试过了,在创建目录的时候提示错误:连接被服务器关闭。请问这是怎么回事呀
    0 0
  • 云管理1号
    2016-12-20 06:22:11
    Re如何基于OSS FTP工具实现远程附件上传到OSS
    为啥我的access_key_id / bucket_name和access_key_secret  无法连接
    0 0
  • 146336912934899
    2016-10-23 04:28:21
    回 17楼wanghaitaosha的帖子
    DT 虚拟主机可以OSS吗,就是远程ftp那个
    0 0
  • 缝合额
    2016-03-11 20:13:54
    Re如何基于OSS FTP工具实现远程附件上传到OSS
    为什么我ecs安装此插件dz上传附件提示“附件文件无法保存”,关闭远程连接都一样,ftp也不能连接了。

    -------------------------

    回 3楼scorpion的帖子
    为什么我ecs安装此插件dz上传附件提示“附件文件无法保存”,关闭远程连接都一样,ftp也不能连接了。
    0 0
滑动查看更多
+ 订阅

云安全开发者的大本营

推荐文章
相似问题
推荐课程