通过单次交互将大量子文件夹树上传到远程 ftp 服务器的可靠方法?

通过单次交互将大量子文件夹树上传到远程 ftp 服务器的可靠方法?

我希望能够开始上传,然后去吃午饭。

我没有权限在远程服务器上安装软件。ftp 服务是唯一可用的服务。

从终端窗口使用 ftp 并不方便,因为它不能递归加载子文件夹。

我使用 Caja 1.12.7(在 Ubuntu Mate 上)。我尝试上传一个文件夹,其中包含两个子文件夹,其中分布着大约 37 个文件,总计 300 kBytes。两个文件上传失败,并显示以下消息

该文件不是目录。

(我想知道在将第一个文件复制到它刚刚创建或应该刚刚创建的新子文件夹时,Caja 是否会失败(但并非每次都失败)。)

例如,我很快就想上传一个包含数百个子文件夹、数千个文件和数百万字节的 WordPress 安装。我希望用一个命令/操作上传所有文件,因此不得不应对 Caja 可能出现的数百次失败,这很不方便。

当然,问题可能出在我的本地设置或远程服务器设置上。

更多信息:

  • 我尝试过 Firefox,但是他们的 ftp 附加组件已被撤回。
  • 我尝试了 Nautilus,但我的测试用例以同样的方式在一个文件上失败了。

答案1

我从 Ubuntu Mate 欢迎屏幕下载了 FileZilla 3.15.0.2。

它在我的测试案例中运行良好。我还尝试使用 Wordpress 安装的 wp-includes 文件夹。它有 896 个项目,大小约为 17Mbytes,子文件夹嵌套深度可达 5 层。我将其复制到远程服务器,然后又复制回来。

物品数量正确。

我想我会选择 FileZilla。

(注:重新复制的文件夹中的总字节数为 16,978,859,而不是原始的 16,982,310,但我想这是它们的存储方式造成的。我查找了文件夹之间的差异,并得到了

$ diff -rq wp-includes/ ../wp-includes/
Files wp-includes/images/crystal/license.txt and ../wp-includes/images/crystal/license.txt differ
Files wp-includes/js/codemirror/csslint.js and ../wp-includes/js/codemirror/csslint.js differ

但忽略文件对上的空格会diff -w导致它们被视为相同的。)

答案2

Firefox 附加组件:
https://addons.mozilla.org/en-US/firefox/search/?q=ftp&platform=Linux&appver=83.0&utm_source=firefox-browser&utm_medium=firefox-browser&utm_content=addons-manager-search

请注意,我个人还没有尝试过这些

请阅读下面的评论;这条路线似乎不太值得。

相关内容