Rui

把腾讯COS变成FTP
需求最近考虑到网站备份的问题,宝塔中可以把资料备份到腾讯COS,作为一名依然拥有50G免费政策的老用户来说,这个羊...
扫描右侧二维码阅读全文
15
2019/06

把腾讯COS变成FTP

需求

最近考虑到网站备份的问题,宝塔中可以把资料备份到腾讯COS,作为一名依然拥有50G免费政策的老用户来说,这个羊毛当然不能放弃,而且考虑到COS在国内,速度好、大厂稳定,作为备份相当不错。

cos-ftp-server-V5

这是腾讯官方的插件,用来对接COS的API

Github地址:https://github.com/tencentyun/cos-ftp-server-V5

chrome_mEE677Cqra.png

系统环境

操作系统:Linux,推荐使用腾讯CentOS系列CVM

Python解释器版本:Python 2.7

依赖包:
cos-python-sdk-v5 (>=1.6.5)
pyftpdlib (>=1.5.2)
psutil (>=5.6.1)

安装

wget https://github.com/tencentyun/cos-ftp-server-V5/archive/v2.1.0.zip

运行setup.py安装ftp server及其相关的依赖库(需要联网):

python setup.py install   # 这里可能需要sudo或者root权限

然后,拷贝conf/vsftpd.conf.example 到 conf/vsftpd.conf,参考配置文件章节,正确配置bucket和用户信息;

最后,运行ftp_server.py启动cos-ftp-server:

python ftp_server.py

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

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

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

screen -dmS ftp
screen -r ftp
python ftp_server.py

Ctrl+A+D # 切回主screen即可
停止
Ctrl + C 即可取消server运行(直接运行,或screen方式放在后台运行)

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

配置文件

conf/vsftpd.conf.example为Ftp Server工具的配置文件示例,请copy为vsftpd.conf,并按照以下的配置项进行配置:

[COS_ACCOUNT_0]
cos_secretid = XXXXXX
cos_secretkey = XXXXXX
cos_bucket = bucketname1-123456789
cos_region = ap-xxx
cos_protocol = https                    # 连接COS或者自定义endpoint所使用的协议类型,默认为https
#cos_endpoint = ap-xxx.myqcloud.com
home_dir = /home/user0
ftp_login_user_name=user0
ftp_login_user_password=pass0
authority=RW
delete_enable=true                    # true为允许该ftp用户进行删除操作(默认),false为禁止该用户进行删除操作

[COS_ACCOUNT_1]
cos_secretid = XXXX
cos_secretkey = XXXXX
cos_bucket = bucketname2-123456789
cos_region = ap-xxx
cos_protocol = https
#cos_endpoint = ap-xxx.myqcloud.com
home_dir = /home/user1
ftp_login_user_name=user1
ftp_login_user_password=pass1
authority=RW
delete_enable=false

[NETWORK]
masquerade_address = XXX.XXX.XXX.XXX        # 如果FTP SERVER处于某个网关或NAT后,可以通过该配置项将网关的IP地址或域名指定给FTP
listen_port = 2121                       # Ftp Server的监听端口,默认为2121,注意防火墙需要放行该端口

passive_port = 60000,65535             # passive_port可以设置passive模式下,端口的选择范围,默认在(60000, 65535)区间上选择

[FILE_OPTION]
# 默认单文件大小最大支持到200G,不建议设置太大
single_file_max_size = 21474836480

[OPTIONAL]
config_check_enable = true

# 以下设置,如无特殊需要,建议保留default设置  如需设置,请合理填写一个整数
min_part_size       = default
upload_thread_num   = default
max_connection_num  = 512
max_list_file       = 10000                # ls命令最大可列出的文件数目,建议不要设置太大,否则ls命令延时会很高
log_level           = INFO                 # 设置日志输出的级别
log_dir             = log                  # 设置日志的存放目录,默认是在ftp server目录下的log目录中

遇到的坑

第一个是提示内存不足,这个可以把检测参数关掉config_check_enable = false
第二个是默认端口2121,有些地方不能修改端口,需要改回21

Last modification:June 15th, 2019 at 03:18 pm

Leave a Comment