如何FTP'获取'仅部分文件

Modified on: Mon, 30 Sep 2019 22:40:02 +0800

我正在开发一种工具来获取隐藏在远程系统中非常大的文件中的一些数据。复制整个文件是不切实际的,我需要的所有数据都存在于文件的前1000个左右的字节中。我知道我可以开始获取并使用^ C取消它以获取部分文件,但是如果以任何一致性自动化将很难(如果不是不可能的话)。

我想告诉我的ftp客户端只抓取远程文件的x个字节,并在它们拥有它们后立即退出。我找到了一些部分下载的Windows客户端,但我没有在ftp手册页中找到任何内容,在线文档很少。

我找到了这个方法:http://cdsarc.u-strasbg.fr/ doc / ftp.htx,它建议使用以下语法:

ftp> get bigfile.dat:0-5000 bigfile.nxt

我不清楚这是否应该在客户端或服务器中实现,但在任何一种情况下,它似乎都不适用于我的环境。 (标准linux ftp客户端连接到在z / OS上运行的FTP服务器)

即使在Linux标准ftp客户端和Windows上的filezilla服务器之间进行尝试,我的尝试也会以下列方式失败

ftp> get green.gif:0-10c local: green.gif:0-10c remote: green.gif:0-10c 227 Entering Passive Mode (9,42,91,226,4,105) 550 File not found

所以:0-10c被解释为它看起来的文件名的一部分。失败。有什么想法吗?

作者:Jax

最佳答案

使用卷曲。从手册页:

   -r/--range <range>
          (HTTP/FTP/FILE)  Retrieve  a byte range (i.e a partial document)
          from a HTTP/1.1, FTP server or a local FILE. Ranges can be spec-
          ified in a number of ways.

          0-499     specifies the first 500 bytes

          500-999   specifies the second 500 bytes

          -500      specifies the last 500 bytes

          9500-     specifies the bytes from offset 9500 and forward

          0-0,-1    specifies the first and last byte only(*)(H)

          500-700,600-799
                    specifies 300 bytes from offset 500(H)

但请注意,服务器必须支持SIZE扩展才能使其正常工作。

作者:,MikeyB

相关问答

添加新评论