上云无忧 > 文档中心 > 百度智能云对象存储BOS工具 - BOSFTP使用教程
对象存储BOS
百度智能云对象存储BOS工具 - BOSFTP使用教程

文档简介:
BOSFTP是一个基于Python实现的BOS的FTP server工具,将FTP协议的操作转化为对BOS中存储的对象、目录的操作。支持文件上传、下载、删除以及创建文件夹等操作。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

简介

BOSFTP是一个基于Python实现的BOS的FTP server工具,将FTP协议的操作转化为对BOS中存储的对象、目录的操作。支持文件上传、下载、删除以及创建文件夹等操作。

主要的功能

BOSFTP支持的主要功能如下:

  • 文件流式上传,大文件分块并行上传
  • 文件流式下载
  • 支持大部分FTP命令,满足FTP需求
  • 服务配置化,满足性能要求

系统环境

  • 操作系统:LINUX
  • Python版本:Python 3
  • 依赖:pyftpdlib>=1.5.0 bce-python-sdk>=0.8.23

安装

  1. 使用pip安装pyftpdlib

    pip install pyftpdlib
  2. 安装python sdk

    cd bce-python-sdk-0.8.23
    python setup.py install
  3. 下载BOSFTP, 并解压。
  4. 验证是否安装好依赖

    cd .. python setup.py install

启动FTP server

执行命令启动一个FTP server, 默认监听端口为2121。

bash start.sh
> running ftp server at port 2121...

关闭

-执行命令ctrl + c关闭FTP Server服务。 -可以指定在后台运行sh start.sh&将服务启动,运行sh stop.sh 关闭服务。

配置文件

[BOS_ACCOUNT]
# 设置ak, sk, bucket
access_key_id = <your access_key_id>
secret_access_key = <your secret_access_key>
bucket = <BucketName>
# FTP Server 的工作目录。
bos_user_home_dir = /home/users/xxx

[FTP_ACCOUNT]
# FTP 账户配置。配置格式为<用户名:密码:读写权限>,多个账户用分号分割。
login_users = usr1:psw1:RW;usr2:psw2:R

[NETWORK]
# 设置endpoint,默认为http://bj.bcebos.com
#endpoint = http://xx.bcebos.com
# FTP监听端口号,默认为2121
listen_port = 8081
# HTTP连接超时时间,默认为3600
connection_timeout_in_mills = 10000
# 并行上传最大并行数,即线程池线程数, 默认为cpu_count * 4
parallel_upload_num = 9
# FTP server最大连接数,默认为1024
max_connection_num = 1000
# 三步上传将文件切割成每个multi_part_size后进行并行上传, 默认为10485760(10M)
multi_part_size = 10485760
masquerade_address = 127.0.0.1

[LOG]
# 设置日志级别
log_level = INFO
# 设置日志目录, 日志名为bosftp.log
log_dir = /home/users/lihangyu01/baidu/bos/bosftp/log

配置文件说明

  • bos_user_home_dir: 本地文件夹路径,上传或是下载都在这个目录进行
  • login_users: 为用户账户信息,启动服务时会验证用户名和密码是否存在于login_users1当中,例如: open 127.0.0.1 2121连接到server,提示输入用户名和密码,这里输入的信息必须存在login_users当中才会通过权限认证
  • parallel_upload_num: 大文件上传会将文件分块(默认10M),然后并发的将这些文件块上传,这个参数用来控制并发度
  • masquerade_address: 使用masquerade_address选项来唯一绑定一个passive模式下用于reply的IP

测试

sh start.sh& "启动后台服务 cd test sh run_test.sh sh stop.sh

注意:配置AK/SK时,Bucket要实际存在,才会再后台启动服务。

常见问题

  • 创建目录删除后导致父级目录被删除怎么办?

例如,执行如下操作:

mkdir dir1/dir2
cd dir1
rm dir2
cd ..

由于创建目录的实现方式是创建名为dir1/dir2的空Object,所以上述操作会导致dir1也被删除。建议创建目录时使用如下方式:

mkdir dir1
cd dir1
mkdir dir2
  • 执行 size file_name时, 显示'550 SIZE not allowed in ASCII mode'

执行type binary命令修改传输方式。

  • 当connection_timeout_in_mills配置参数比较小的时候会导致rename一个大的文件对象超时失败

建议connection_timeout_in_mills配置参数值为10000,即10s。

  • put一个大小为0的object显示成功,但是执行list操作缺显示不出。

pyftpdlib库本身不会去读取0大小的文件,所以无法上传0大小的文件。

  • 启动ftp服务后,用其他机器连接,显示Connection refused怎么办?

显示如下

227 Entering passive mode (127,0,0,1,97,183).
ftp: connect: Connection refused

执行passive命令即可。

版本记录

  • BOSFTP工具包 [2018-03-08] 版本号1.0.1

    • 支持APPE接口实现断点续传功能
  • BOSFTP工具包 [2018-11-09] 版本号1.0.0

    • 支持文件上传,下载,删除, 支持文件夹创建
    • 支持put、get、delete、mkdir、ls、cd、quite、size、rename命令
    • 自定义ftp配置
    • 大文件分块上传
相似文档
  • 说明:第三方工具主要由论坛的第三方开发者提供,由于这些工具并非官方提供,可能会存在一些bug,请大家谨慎使用。 目前BOS支持的第三方工具有:wordpress插件、Discuz插件、UCenter插件和Python flash。
  • 为了方便用户使用百度智能云存储服务的API,BCE提供了可以通过命令行工具BCE CLI(Command Line Interface)调用BOS服务的方式,该工具基于BCE Python SDK实现。
  • 前提条件: BOS CLI命令行工具(即BCE CLI)基于Python 2.7开发,根据操作系统安装相应Python 2.7,目前支持Windows 和Linux。 操作步骤: 1.准备Python环境。 Windows环境: 在Python官网下载python27.msi后,双击安装。
  • 配置支持中文显示的CLI环境。 如需要配置支持中文显示的CLI环境,请执行如下命令配置: $ export LANG=en_US.UTF-8 说明:可先执行$ locale命令查看当前环境的语言支持情况,若不是LANG=en_US.UTF-8,可执行上述命令进行修改。
  • 用户可以通过bos命令来访问BOS服务,管理、操作Bucket和Object。如果BOS服务余额不足时进行操作会提示Access Denied。 CLI使用多层命令结构,所有的命令以bce开头,[options]表示BCE CLI支持的选项,表示CLI所支持的服务,如BOS等,每个服务拥有多个特定的子命令。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部