如何打开 FTP 目录,以便我可以像使用普通目录一样使用它?

How do I open an FTP directory so that I can use it the same way I could a normal directory?

我正在尝试制作一个应用程序来下载一些东西并将其放在 FTP 服务器上。 space 不足以将正在下载的文件放入我的计算机,因此我希望将它们下载到 FTP 服务器。

具体来说,我正在使用 pytube 下载视频:

stream.download()

.download() 可以保存路径变量,但我不知道如何使用它以这种方式发送 FTP 服务器。我正在寻找一种打开FTP目录的方法,以便我可以使用路径填充那里。

如有任何帮助,我们将不胜感激。

这里是 ftputil 维护者。 :-)

我还没有用过pytube,所以我只能回答ftputil部分。

如果您确实不想或不能将视频文件临时保存到您的计算机,您需要一种方法来获取 file-like 对象以从 Pytube 下载视频。 (我还没有看到如何。有一个“流”的接口,但我不确定它们是否可以直接用作 file-like 对象。)

如果您有一个来自 Pytube 的文件对象,您可以创建一个 file-like 对象用于在 FTP 服务器上写入您选择的路径,并从一个文件对象复制到另一个文件对象:

import shutil

import ftputil
import pytube


# Get file-like object for video.
source_file = ...

with ftputil.FTPHost(host, user, password) as ftp_host:
    with ftp_host.open('/path/to/target_file', 'wb') as target_file:
        shutil.copyfileobj(source_file, target_file)

我知道缺少 Pytube 部分。也许其他人可以做出贡献,或者您可以在 their ticket system 上提问。 (我没有找到邮寄列表或类似列表。)

综上所述,即使它没有回答您的实际问题,您也可以在本地下载每个视频文件并将其逐个文件上传到 FTP 服务器。这样,您只需要 space 即可获得最大的视频文件。

代码示例的链接: