FTP를 통해 파일의 일부만 전송하려고한다고 가정합니다. 표준 FTP 프로토콜을 사용할 수 있습니까?HTTP 범위 헤더와 같은 FTP 프로토콜에는 어떤 것이 있습니까?
HTTP에서 요청에 Range header을 사용하여 원격 리소스의 데이터 범위를 지정할 수 있습니다. 1MB 파일이라면 600k에서 700k까지 바이트를 요청할 수 있습니다.
FTP에 그런 것이 있습니까? 나는 the FTP RFC을 읽고 있는데, 아무 것도 보이지 않지만, 나는 아무것도 놓치고 있지 않다는 것을 확인하고 싶다.
FTP에 다시 시작 명령이 있습니다. 작동합니까?
부록
Brian Bondy's answer below을 얻기 후에, 나는 FTP를 래핑 읽기 전용 스트림 클래스를 썼다. REST
동사에 따라 FTP를 통해 읽은 리소스에 대해 Seek() 및 Read() 작업을 지원합니다.
http://cheeso.members.winisp.net/srcview.aspx?dir=streams&file=FtpReadStream.cs
데이터 소켓을 설정하는 데 시간이 오래 걸리기 때문에 Seek()가 상당히 느립니다. 해당 스트림을 BufferedStream으로 감쌀 때 최상의 결과가 나타납니다.
우수. 이는 답변의 처음 부분 인 범위의 시작을 설정합니다. 전송할 범위의 끝을 설정하는 것은 나머지 절반입니다. 나는 FTP에서 그 일을하는 것이 아무것도 없다고 생각합니다. 그래서 ... 클라이언트가 전송을 중지 할 필요가 있다고 가정합니다. 어쩌면 중단 명령을 보낼 수 있습니다. 테스트가 필요합니다. – Cheeso
@Cheeso : 맞습니다. 데이터가 충분하면 ABOR을 보내거나 데이터 연결을 끊어야합니다. –
시도한 후에 제대로 작동하는 것 같습니다. 감사. – Cheeso