对象存储 FTP Server 工具

COS FTP Server 支持通过 FTP 协议直接操作对象存储(Cloud Object Storage,COS)中的对象和目录,包括上传文件、下载文件、删除文件以及创建文件夹等。FTP Server 工具使用 Python 实现,使安装更加简单。

相关产品
对象存储 产品页,含版本规格、价格与购买入口。

一、功能说明

上传机制:流式上传,不落本地磁盘,只要按照标准的 FTP 协议配置工作目录即可,不占用实际的磁盘存储空间。
下载机制:直接流式返回给客户端。
目录机制:bucket 作为整个 FTP Server 的根目录,bucket 下面可以建立若干个子目录。
多 bucket 绑定:支持同时绑定多个 bucket。

注意:说明:

注意:多 bucket 绑定:通过不同的 FTP Server 工作路径(home_dir)来实现,因此,指定不同的 bucket 和用户信息时必须保证 home_dir 不同。

删除操作限制:在新的 FTP Server 中可以针对每个 ftp 用户配置 delete_enable 选项,以标识是否允许该 FTP 用户删除文件。
支持的 FTP 命令:put、mput、get、rename、delete、mkdir、ls、cd、bye、quite、size。
不支持的 FTP 命令:append、mget (不支持原生的 mget 命令,但在某些 Windows 客户端下,仍然可以批量下载,例如 FileZilla 客户端。)

注意:说明:

注意:FTP Server 工具暂时不支持断点续传功能。

二、系统环境

·操作系统:Linux,推荐使用腾讯 CentOS 系列 云服务器,暂时不支持 Windows 系统。其中,setuptools 需要升级至最新版本(>=44.1.1)。

·psutil 依赖的 Linux 系统包:python-devel(或 python-dev,依据不同的 Linux 发行版名字不同),通过 Linux 下的包管理工具添加,例如 yum install python-devel 或 aptitude install python-dev。

·Python 解释器版本:Python 2.7,请参见 Python 安装与配置 进行安装与配置。

注意:说明:

注意:FTP Server 工具不支持 Python 3。

·依赖包:

·cos-python-sdk-v5:1.6.5及以上版本。

·pyftpdlib:1.5.7及以上版本。

注意:说明:

注意:如你的服务器所使用的 pyftpdlib 版本为 1.5.9,可能出现版本不兼容导致报错421,请尝试使用 pyftpdlib 1.5.7版本。

·psutil :5.6.1及以上版本。

三、使用限制

适用于 COS XML 版本。

四、安装运行

FTP Server 工具下载地址为:cos-ftp-server。安装步骤如下:

1. 进入 FTP Server 目录,运行 setup.py 安装 FTP Server 及其相关的依赖库(需要联网):

python setup.py install # 这里可能需要你的账号 sudo 或者拥有 root 权限。

2. 将配置示例文件 conf/vsftpd.conf.example 复制命名为 conf/vsftpd.conf,参考这篇 配置文件 章节 ,正确配置 bucket 和用户信息。

3. 运行 ftp_server.py 启动 FTP Server:

python ftp_server.py

此外还有两种方式启动 FTP Server,如下:

·使用 nohup 命令,以后台进程方式启动:

nohup python ftp_server.py >> /dev/null 2>&1 &

·使用 screen 命令放入后台运行(需要安装 screen 工具):

screen -dmS ftpscreen -r ftppython ftp_server.py#使用快捷键 Ctrl+A+D ,切回主 screen 即可。

五、停止运行

·若你是直接运行,或 screen 方式放在后台运行的 FTP Server,你可以使用快捷键 Ctrl+C 停止 FTP Server 运行。

·若你是通过 nohup 命令启动,可以使用下面方式停止:

ps -ef | grep python | grep ftp_server.py | grep -v grep | awk '{print $2}' | xargs -I{} kill {}

六、配置文件

FTP Server 工具的配置示例文件为 conf/vsftpd.conf.example,请复制命名为 vsftpd.conf,并按照以下的配置项进行配置:

[COS_ACCOUNT_0]cos_secretid = COS_SECRETID # 替换为你的 SECRETIDcos_secretkey = COS_SECRETKEY # 替换为你的 SECRETKEYcos_bucket = examplebucket-1250000000cos_region = region # 替换为你的存储桶地域cos_protocol = https#cos_endpoint = region.myqcloud.comhome_dir = /home/user0 # 替换为你希望 FTP 挂载到的本地路径(需设置为机器上实际存在的路径,不支持软链接)ftp_login_user_name=user0 # 替换为用户自定义的账号ftp_login_user_password=pass0 # 替换为用户自定义的密码authority=RW # 设置该用户的读写权限,R 表示读权限,W 表示写权限,RW 表示同时具备读写权限delete_enable=true # true 为允许该 ftp 用户进行删除操作(默认),false 为禁止该用户进行删除操作[COS_ACCOUNT_1]cos_secretid = COS_SECRETID # 替换为你的 SECRETIDcos_secretkey = COS_SECRETKEY # 替换为你的 SECRETKEYcos_bucket = examplebucket-1250000000cos_region = region # 替换为你的存储桶地域cos_protocol = https#cos_endpoint = region.myqcloud.comhome_dir = /home/user1 # 替换为你希望 FTP 挂载到的本地路径(需设置为机器上实际存在的路径,不支持软链接)ftp_login_user_name=user1 # 替换为用户自定义的账号ftp_login_user_password=pass1 #替换为用户自定义的密码authority=RW # 设置该用户的读写权限,R 表示读权限,W 表示写权限,RW 表示同时具备读写权限delete_enable=false # true 为允许该 ftp 用户进行删除操作(默认),false 为禁止该用户进行删除操作[NETWORK]# 如果 FTP Server 处于某个网关或 NAT 后,可以通过该配置项将网关的 IP 地址或域名指定给 FTPmasquerade_address = XXX.XXX.XXX.XXX# FTP Server 的监听端口,默认为2121,注意防火墙需要放行该端口(例如你是将 FTP Server 工具部署在腾讯云 CVM,则需要在 CVM 安全组放行该端口)listen_port = 2121 # passive_port 可以设置 passive 模式下,端口的选择范围,默认在 [60000, 65535] 区间上选择,注意防火墙(例如 CVM 安全组)需要放行此区间端口passive_port = 60000,65535 [FILE_OPTION]# 默认单文件大小最大支持到200G,不建议设置太大single_file_max_size = 21474836480[OPTIONAL]# 以下设置,如无特殊需要,建议保留 default 设置。如需设置,请合理填写一个整数min_part_size = defaultupload_thread_num = defaultmax_connection_num = 512max_list_file = 10000 # ls 命令最大可列出的文件数目,建议不要设置太大,否则 ls 命令延时会很高log_level = INFO # 设置日志输出的级别log_dir = log # 设置日志的存放目录,默认是在 FTP Server 目录下的 log 目录中

注意:说明:

七、使用 Linux ftp 命令 访问 COS FTP Server

1. 安装 Linux ftp 客户端

yum install -y ftp

2. 在 Linux 命令行 ,使用命令 ftp [ip地址] [端口号],连接 COS FTP Server。例如以下命令 。

ftp 192.xxx.xx.103 2121

·ftp 命令中,IP 的设置对应配置示例文件 conf/vsftpd.conf.example 中的 masquerade_address 配置项。在本例中 IP 设置为 192.xxx.xx.103。

·ftp 命令中,端口的设置对应配置示例文件 conf/vsftpd.conf.example 中的 listen_port 配置项。在本例中设置为2121。

3. 运行上述命令后,出现 Name和 Password 待输入项 ,输入 COS FTP Server 配置项 ftp_login_user_name 和 ftp_login_user_password 中配置的内容, 即可连接成功。

·Name:对应配置示例文件 conf/vsftpd.conf.example 中的 ftp_login_user_name 配置项 (需要进行配置)。

·Password:对应配置示例文件 conf/vsftpd.conf.example 中的 ftp_login_user_password 配置项 (需要进行配置)。

八、使用 FileZilla 访问 COS FTP Server

1. 下载 FileZilla 客户端 并安装。

2. 在 FileZilla 客户端配置 COS FTP Server 的访问信息后,单击快速连接。

·主机 (H):对应配置示例文件 conf/vsftpd.conf.example 中 masquerade_address 配置项。在本例中ip设置为192.xxx.xx.103。

注意:如果 COS FTP Server 处于某个网关或 NAT 后,可以通过该配置项将网关的 IP 地址或域名指定给 COS FTP Server 。

·用户名 (U):对应配置示例文件 conf/vsftpd.conf.example 中的 ftp_login_user_name 配置项 (需要进行配置)。

·密码 (W): 对应配置示例文件 conf/vsftpd.conf.example 中的 ftp_login_user_password 配置项(需要进行配置)。

·端口 (P):对应配置示例文件 conf/vsftpd.conf.example 中的 listen_port 配置项。在本例中设置为2121。


九、常见问题

如你在使用 FTP Server 工具过程中,有报错或对上传限制有疑问,请参见 FTP Server 工具 常见问题。

赞 (0)
上一篇 4天前
下一篇 4天前