开发者社区> 问答> 正文

ossftp-快速安装



如何快速安装使用OSS FTP工具



简介


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

主要特性

  • [backcolor=transparent]跨平台: 无论是Windows、Linux还是Mac, 无论是32位还是64位操作系统,无论是图形界面还是命令行都可以运行。
  • [backcolor=transparent]免安装: 解压后可直接运行。
  • [backcolor=transparent]免设置: 无需设置即可运行。
  • [backcolor=transparent]透明化: FTP工具是python写的,您可以看到完整的源码,我们稍后也会开源到Github。


主要功能

  • 支持文件和文件夹的上传、下载、删除等操作。
  • 通过Multipart方式,分片上传大文件。
  • 支持大部分FTP指令,可以满足日常FTP的使用需求。


注意

  1. 目前在1.0版本中,考虑到安装部署的简便,OSS FTP工具没有支持TLS加密。由于FTP协议是明文传输的,[backcolor=transparent]为了防止您的密码泄漏,建议将FTP server和client运行在同一台机器上,通过127.0.0.1:port的方式来访问。
  2. 不支持rename和move操作。
  3. 安装包解压后的路径不要含有中文。
  4. FTP server的管理控制页面在低版本的IE中可能打不开。
  5. FTP server支持的Python版本: Python2.6, Python2.7。


下载


  • Windows: ossftp-1.0.2-win.zip
    由于Windows不会默认安装Python2.7,所以安装包中包含了Python2.7,免去您python安装配置的麻烦,解压即可使用。

  • Linux/Mac: ossftp-1.0.2-linux-mac.zip
    由于Linux/Mac系统默认会安装Python2.7或Python2.6,所以安装包中不再包含可执行的python, 只包含了相关依赖库。


运行


首先解压之前下载的文件,然后根据环境情况选择不同的运行方式。
  • Windows: 双击运行start.vbs即可
  • Linux: 打开终端,运行$ bash start.sh

  • Mac: 双击start.command,或者在终端运行$ bash start.command


上述步骤会启动一个FTP server, 默认监听在127.0.0.1的2048端口。同时,为了方便您对FTP server的状态进行管控,还会启动一个web服务器,监听在127.0.0.1的8192端口。如果您的系统有图形界面,还会自动打开控制页面,如下所示:

大部分情况不要任何配置,就可以运行一个FTP server了,如果想对FTP server进行配置, 请注意需要重启才能生效。


连接到FTP server


推荐使用 FileZilla客户端去连接FTP server。下载安装后,按如下方式连接即可:
  • 主机: 127.0.0.1
  • 登录类型: 正常
  • 用户:access_key_id/bucket_name
  • 密码:access_key_secret

    [backcolor=transparent]注意:- [backcolor=transparent]用户中,/是必须的,如用户tSxyiUM3NKswPMEp/test-hz-jh-002。- [backcolor=transparent]access_key_id和[backcolor=transparent]access_key_secret的获取,请参见 OSS访问控制



高级使用


  • 通过控制页面管理FTP server
    [backcolor=transparent]修改监听地址如果需要通过网络来访问FTP server, 那么需要修改监听地址,因为默认的监听地址127.0.0.1只允许来自本地的访问。可以修改成内网ip或公网ip。

  • [backcolor=transparent]修改监听端口 修改FTP server监听的端口, 建议端口大于1024, 因为监听1024以下的端口时需要管理员权限.

  • [backcolor=transparent]修改日志等级设置FTP server的日志级别。FTP server的日志会输出到data/ossftp/目录下, 可以通过控制页面的日志按钮在线查看。默认的日志界别为INFO, 打印的日志信息较少,如果需要更详细的日志信息,可以修改为DEBUG模式。如果希望减少日志的输出,可以设置级别为WARNING或ERROR等。

  • [backcolor=transparent]设置Bucket endpointsFTP server默认会探索bucket的所属location信息,随后将请求发到对应的region(如oss-cn-hangzhou.aliyuncs.com或oss-cn-beijing.aliyuncs.com),FTP server会优先尝试内网访问oss。如果您设置了bucket endpoints, 如设置为test-bucket-a.oss-cn-hangzhou.aliyuncs.com, 那么当访问test-bucket-a时,就会使用oss-cn-hangzhou.aliyuncs.com域名。

[backcolor=transparent]注意
  • 所有修改都需要重启才能生效。
  • 上述的所有修改其实都是修改的ftp根目录下的config.json, 所以您可以直接修改该文件。

直接启动FTP server(Linux/Mac)可以直接启动ossftp目录下的ftpserver.py, 免去web_server的开销。 $ python ossftp/ftpserver.py &

配置修改方式同上。

可能遇到的问题


  • 如果连接FTP server时,遇到以下错误:有两种可能:
    输入的 access_key_id 和 access_key_secret有误。解决:请输入正确的信息后再重试。

  • 所用的access_key信息为ram 子账户的access_key,而子账户不具有List buckets权限。解决:当使用子账户访问时,请在控制页面中指定bucket endpoints, 即告诉FTP server某个bucket应该用什么endpoint来访问。同时,子账户也需要一些必须的权限,关于使用ram访问oss时的访问控制,请参考文档访问控制。具体如下。
    [backcolor=transparent]只读访问OSS FTP工具需要的权限列表为 ListObjects、GetObject、HeadObject。关于如何创建一个具有[backcolor=transparent]只读访问的ram子账户,请参考图文教程如何结合ram实现文件共享

  • [backcolor=transparent]上传文件如果允许ram子账户[backcolor=transparent]上传文件,还需要 PutObject。

  • [backcolor=transparent]删除文件如果允许ram子账户[backcolor=transparent]删除文件,还需要 DeleteObject。

如果您在Linux下运行FTP server,然后用FileZilla连接时遇到如下错误: 501 can't decode path (server filesystem encoding is ANSI_X3.4-1968)

一般是因为本地的中文编码有问题。在将要运行start.sh的终端中输入下面的命令,然后再重新启动即可。 $ export LC_ALL=en_US.UTF-8; export LANG="en_US.UTF-8"; locale

展开
收起
青衫无名 2017-10-23 13:39:35 4170 0
1 条回答
写回答
取消 提交回答
  • Reossftp-快速安装
    你好, 我这白牛用的是linux系统.运行$ bash start.sh后显示图1的.但是Discuz内还是无法连接远程URL是什么原因?
    2018-03-29 20:32:41
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载