开发者社区> 问答> 正文

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

前言:
网站远程附件功能是指将用户上传的附件直接存储到远端的存储服务器,一般是通过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



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

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

    回 3楼scorpion的帖子
    为什么我ecs安装此插件dz上传附件提示“附件文件无法保存”,关闭远程连接都一样,ftp也不能连接了。
    2016-03-11 20:13:54
    赞同 展开评论 打赏
  • Re如何基于OSS FTP工具实现远程附件上传到OSS
    2016-02-26 10:52:56,983 INFO [handlers.py:1767(log)] 127.0.0.1:59495-[] FTP session opened (connect)
    2016-02-26 10:52:56,996 INFO [handlers.py:1767(log)] 127.0.0.1:59446-[] FTP session closed (disconnect).
    2016-02-26 10:52:57,407 INFO [connectionpool.py:207(_new_conn)] Starting new HTTP connection (1): oss-cn-beijing.aliyuncs.com
    2016-02-26 10:52:57,558 INFO [connectionpool.py:207(_new_conn)] Starting new HTTP connection (1): oss-cn-beijing.aliyuncs.com
    2016-02-26 10:54:05
    赞同 展开评论 打赏
  • 回 22楼(小眼嗒嗒) 的帖子
    你说的连接时超级 是什么意思? 是超时么?
    是用ftp client尝试登录或列出文件夹内容时导致超时么?

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

    回 24楼(不知啊啊) 的帖子
    已经在这个帖子中回复你了,参考 https://bbs.aliyun.com/read/268724.html?spm=5176.bbsr268724.0.0.a5urMP&page=5的 63楼

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

    回 27楼(缝合额) 的帖子
    如果关闭远程连接也一样的话,可能是本地的文件权限问题吧。你把“上传设置” -》“本地附件保存位置” 里面的路径属性设为777试试。
    2016-02-20 11:30:59
    赞同 展开评论 打赏
  • Re如何基于OSS FTP工具实现远程附件上传到OSS
    功能非常不错,但是如果OSS下附件太多的话,连接的时候经常会超级
    2016-02-20 00:22:18
    赞同 展开评论 打赏
  • 回 5楼(scorpion) 的帖子
    1、这个工具是官方出的?(为啥官人会来回答这个软件的问题)

    2、Win系统下,支持开机自启动和设置保存么?

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

    回 20楼(scorpion) 的帖子
    看起来好棒,比同类的几个软件好多了,赶紧试试去。

    建议发到云市场去吧,让更多的人看到。
    2015-12-28 15:19:41
    赞同 展开评论 打赏
  • 回 8楼(wanghaitaosha) 的帖子
    你好,请问你的远程附件的设置中,远程访问URL填的是什么? 如果远程访问URL填的是内网域名,很可能会导致图片打不开。
    这是因为远程附件是由浏览器直接下载的,不经过您的服务器,所以浏览器如果不能访问oss内网域名,就会导致图片打不开

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

    回 10楼(wanghaitaosha) 的帖子
    请检查你的bucket是不是public read的? 还有把你的配置贴出来吧,注意access_key不要贴出来

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

    回 12楼(wanghaitaosha) 的帖子
    本来就是过一会儿会断开的啊。
    当连接上之后,过一段时间没有控制命令(上传或下载等操作)就会断开了。

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

    回 14楼(wanghaitaosha) 的帖子
    不太明白您放这张图是要说明什么,如果您还有什么疑问,可以联系我的旺旺 正柯

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

    回 17楼(wanghaitaosha) 的帖子
    已经发现问题所在了。其实就是因为配置不对造成的。oss ftp工具本身是没有问题的。

    解决方法:把远程存储目录设置为空就可, 参考下图



    原因: 主要是因为你所用的destnoon论坛中, 远程存储目录的含义跟其他论坛(Discuz, phpwind等)的含义不一样

    destnoon不会把‘.’解析为你的根目录,后续上传文件时,实际执行的命令是"STOR  ./201512/26/file", 而以点开头的路径参数通常就是相对路径,所以会在当前目录下创建"/201512/26/file", 而不是在根目录创建"/201512/26/file", 从而导致文件创建的路径错误。


    2015-12-26 10:08:22
    赞同 展开评论 打赏
  • 函数计算研发经理。2010年加入阿里云,参与了阿里云飞天分布式系统的研发,深度参与了阿里云系统研发和产品迭代的全过程。对大规模分布式计算,大规模数据存储和处理有非常深入的理解。现为阿里云函数计算产品研发负责人,致力于构建下一代弹性、高可用的无服务器计算平台。
    回 3楼(51干警网) 的帖子
    多一种选择,大家可以选最方便的做法。

    这个工具也能支持其他软件,而且会一直维护,代码会开源到github。

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

    回 2楼(手拍客) 的帖子
    您在服务器上安装的吗?您会经常重启服务器?我们正在解决linux下开机启动的问题。

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

    回 19楼(ap0752o2w) 的帖子
    1. 是官方出的。
    2. 支持。
    2015-12-24 09:27:16
    赞同 展开评论 打赏
  • 阿里云论坛版主,QQ 1978638808
    辛苦了。wordpress还有比较做远程附件吗?貌似有插件作者做了插件了。

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

    回 6楼(手拍客) 的帖子
    这也是一种情况下出现的问题。支持。
    2015-12-23 23:57:10
    赞同 展开评论 打赏
  • 测试成功,就是不会怎么保存设置,和自启动设置。

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

    回 5楼(scorpion) 的帖子
    运行起来肯定是不会经常重启的。只是刚接触linux系统  服务器还没有上线,就差一个oss连接了,想把oss工具测试好了再上线,所以会经常重启下做测试,新手心态,希望理解,
    2015-12-23 20:09:11
    赞同 展开评论 打赏
  • 很棒,先测试下先。

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

    destoon系统 按以上步骤配置ftp,再配置远程附件,网站后台测试正常,但上传不了图片,上传的图片显示的是叉叉,如果oss直接能分配ftp账号那样就方便多了。目前的ftp工具,小白表示一样不会用啊。

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

    回 9楼(oss-dev) 的帖子
    填写的是自定义的外网域名。

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

    回 11楼(oss-dev) 的帖子
    bucket 设置的是公共读,
    服务器上配置的ftp显示连接成功,但过一会会自动断开,提示如下
    状态:    已连接
    状态:    读取目录列表...
    状态:    列出“/”的目录成功
    响应:    421 Control connection timed out.
    错误:    连接被服务器关闭

    网站后台配置如下,测试正常

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

    回 11楼(oss-dev) 的帖子

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

    回 15楼(oss-dev) 的帖子
    好的,感谢,我再试下看。

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

    回 15楼(oss-dev) 的帖子
    加了你旺旺,麻烦通过下,我旺旺是  曾有情1
    2015-12-23 19:57:53
    赞同 展开评论 打赏
滑动查看更多
问答排行榜
最热
最新

相关电子书

更多
OSS运维进阶实战手册 立即下载
《OSS运维基础实战手册》 立即下载
OSS运维基础实战手册 立即下载