Note that there are some explanatory texts on larger screens.

plurals
  1. POIs there anything in the FTP protocol like the HTTP Range header?
    primarykey
    data
    text
    <p>Suppose I want to transfer just a portion of a file over FTP - is it possible using a standard FTP protocol? </p> <p>In HTTP I could use a <a href="https://stackoverflow.com/questions/716680/difference-between-content-range-and-range-headers">Range header</a> in the request to specify the data range of the remote resource. If it's a 1mb file, I could ask for the bytes from 600k to 700k.</p> <p>Is there anything like that in FTP? I am reading <a href="http://tools.ietf.org/html/rfc959" rel="nofollow noreferrer">the FTP RFC</a>, don't see anything, but want to make sure I'm not missing anything. </p> <p>There's a Restart command in FTP - would that work?</p> <hr> <p><strong>Addendum</strong><br> After getting <a href="https://stackoverflow.com/questions/2538613/is-there-anything-in-the-ftp-protocol-like-the-http-range-header/2538739#2538739">Brian Bondy's answer below</a>, I wrote a read-only Stream class that wraps FTP. It supports Seek() and Read() operations on a resource that is read via FTP, based on the <code>REST</code> verb.<br> Find it at <a href="http://cheeso.members.winisp.net/srcview.aspx?dir=streams&amp;file=FtpReadStream.cs" rel="nofollow noreferrer">http://cheeso.members.winisp.net/srcview.aspx?dir=streams&amp;file=FtpReadStream.cs</a></p> <p>It's pretty slow to Seek(), because setting up the data socket takes a long time. Best results come when you wrap that stream in a <a href="http://msdn.microsoft.com/en-us/library/system.io.bufferedstream.aspx" rel="nofollow noreferrer">BufferedStream</a>. </p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload