参考:
https://blog.csdn.net/zsh501736479/article/details/114385736
https://blog.csdn.net/qq_39511050/article/details/122027052

from ftplib import FTP

# 连接到FTP服务器
ftp = FTP('ftp.example.com')
ftp.login(user='username', passwd='password')

# 列出FTP服务器上的文件和目录
ftp.cwd('/path/to/directory')
file_list = ftp.nlst()
print(file_list)

# 下载文件
local_filename = 'local_file.txt'
remote_filename = 'remote_file.txt'
with open(local_filename, 'wb') as file:
    ftp.retrbinary('RETR {}'.format(remote_filename), file.write)

# 上传文件
local_filename = 'local_file.txt'
remote_filename = 'remote_file.txt'
with open(local_filename, 'rb') as file:
    ftp.storbinary('STOR {}'.format(remote_filename), file)

# 关闭FTP连接
ftp.quit()

docker 安装ftp服务

参考:
https://blog.csdn.net/weixin_42132446/article/details/127631780

https://www.mxblog.com.cn/docker%E5%AE%89%E8%A3%85ftp%E6%96%87%E4%BB%B6%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%8F%8Aftp%E5%B7%A5%E5%85%B7%E7%B1%BB%E7%9A%84%E4%BD%BF%E7%94%A8.html

https://huaweicloud.csdn.net/63311a9ed3efff3090b52252.html?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Eactivity-1-123374929-blog-127631780.235%5Ev38%5Epc_relevant_sort_base1&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Eactivity-1-123374929-blog-127631780.235%5Ev38%5Epc_relevant_sort_base1&utm_relevant_index=2

//run 启动镜像
//-d 设置镜像
//-p 设置端口号
//-v 设置ftp文件挂载点 /Users/localhost/Documents/soft:/home/vsftpd 冒号前面为宿主机地址,后面为映射ftp上的地址
//-e FTP_USER=admin -e FTP_PASS=admin 设置ftp用户名密码
//-e PASV_ADDRESS=127.0.0.1 宿主机地址
//-e PASV_MIN_PORT=21100 给客服端提供下载服务随机端口号范围,默认 21100-21110,与前面的 docker 端口映射设置成一样。

docker run -d -p 21:21 -p 20:20 -p 21100-21110:21100-21110 -v /Users/localhost/Documents/soft:/home/vsftpd -e FTP_USER=admin -e FTP_PASS=admin -e PASV_ADDRESS=127.0.0.1 -e PASV_MIN_PORT=21100
-e PASV_MAX_PORT=21110 --name vsftpd --restart=always fauria/vsftpd

3、filezilla使用

https://filezilla-project.org/
在这里插入图片描述

这工具支持两种协议,一般简单文件上传下载sftp用的多,和ssh一样,只要服务器ssh允许启动就能通过ssh一样方式链接

FTP(File Transfer Protocol)和 SFTP(SSH File Transfer Protocol)是两种不同的文件传输协议,它们有以下一些区别:

1、传输方式:FTP 使用明文传输数据,包括用户名、密码和传输的文件内容,这可能会导致敏感信息的暴露。而 SFTP 则基于 SSH(Secure Shell)协议,通过加密通道进行数据传输,提供了更高的安全性。

2、安全性:由于 FTP 的明文传输,它容易受到中间人攻击和窃听。SFTP 通过 SSH 的加密机制,保证了数据的保密性、完整性和可靠性。

3、认证方式:FTP 通常使用用户名和密码进行认证。而 SFTP 可以利用 SSH 协议的优势,支持多种认证方式,如密码、密钥对等。

端口号:FTP 一般使用端口 21 进行连接。SFTP 通常使用 SSH 协议的端口(默认是 22),但也可以通过 SSH 隧道来使用其他端口。

功能特性:FTP 主要用于文件的上传和下载,而 SFTP 除了文件传输,还可以支持更多的SSH 功能,如远程命令执行、文件操作等。

客户端支持:大多数操作系统都内置了 FTP 客户端,而 SFTP 通常需要专门的 SSH 客户端或支持 SFTP 的文件传输工具。

应用场景:FTP 适用于一些对安全性要求不高的文件传输场景。而 SFTP 更适合在需要保护数据隐私和完整性的情况下使用,如传输敏感文件或在不安全的网络环境中。

总体而言,SFTP 相较于 FTP 在安全性方面有明显的优势,但在某些简单的文件传输场景中,FTP 可能更易于使用和设置。选择使用哪种协议取决于具体的需求和安全考虑。如果安全性是首要关注点,建议使用 SFTP;如果对安全性要求不高,或者需要与不支持 SFTP 的系统进行文件交换,FTP 可能是一个可行的选择。

在这里插入图片描述

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐