【问题标题】:Using CURL download file in FTPS server but output have the wrong size在 FTPS 服务器中使用 CURL 下载文件但输出大小错误
【发布时间】:2018-10-05 07:36:46
【问题描述】:

我正在尝试通过 CURL 在 FTP 服务器中下载文件,但是当我使用 2 个命令时,它会给出 2 个不同的结果。 示例:我的文件 fileName.zip 的大小为 40mb。

当我使用第一个命令时:

curl --insecure -u username:password ftps://host:port//download/folder1/fileName.zip --output fileNameDownload.zip

它会为我返回一个大小为 40MB 的文件 fileNameDownload.zip,这个文件没问题。

我尝试用另一种方式下载这个文件:

curl --insecure -u username:password ftps://host:port -X "RETR download/folder1/fileName.zip" --output fileNameDownload.zip

它将为我返回大小为 40.2MB 的文件 fileNameDownload.zip,我无法打开此文件。

如何使第二条命令正确?

【问题讨论】:

  • 您是否使用文本编辑器查看过第二个文件?我假设它在开始时包含标题信息。
  • 我已经在尝试使用 textFIle.txt 文件再次对其进行测试,并且第二个命令运行正常,但是当我将 textFile.txt 压缩到 textFIle.zip 并使用第二个命令再次下载时,它将返回 testFile.zip 但我无法解压缩此文件
  • 当我用文本编辑器打开 2 个 zip 文件并将内容复制到 diffchecker.com/diff 并且它说“这两个文件是相同的”但第一个命令给了我一个大小为 701byte 和第二个的文件命令给了我一个大小为 704byte 的文件
  • !Different from two file。我发现两个文件不同
  • 您使用的是最新的 curl 版本吗?在哪个平台上?如果不是,请尝试一下 - 如果是这样,我认为值得打开一个错误报告:curl.haxx.se/docs/bugs.html

标签: curl ftp-server


【解决方案1】:

我发现了问题,因为我使用了 -X 选项并且 CURL 有一个脚本。在脚本中有步骤设置 TYPE = A。(在第一个命令 CURL 中设置 TYPE = I)

TYPE 请求控制二进制标志。它有一个参数。参数有四种可能:

A:关闭二进制标志。

A N:关闭二进制标志。

I:打开二进制标志。

L 8:打开二进制标志。

这就是我下载文件内容错误的原因

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-07
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    相关资源
    最近更新 更多