7

Is there any SFTP client software that supports segmented uploading to an SFTP server?

  • Runs in Windows
  • Multi-part segmented uploading (NOT to be confused with multi-threaded)
  • Segmented uploading enabled by default or at least easily configurable
  • Restore local source timestamp on destination uploaded file (optional)
  • May support other protocols like FTP, SCP, etc. (optional)

I tried 3D-FTP which I thought supports multipart transfers, but apparently it's just multi-threaded (each file gets a thread).

What I want is multipart (combined with multi-threading), in that a large uploaded file is split locally into many parts (one per thread) and uploaded over parallel connections. Once all parts are uploaded, the parts are stitched back into a single file in the SFTP server.

Is there any such software?


As per FjodrSo's answer, BitKinex looked promising. However (quoting my comment):

When I upload, the option for multipart is disabled. It's only available and enabled when I download. According to the log it is indeed an SSH-2 server. So what's missing, what else does the server need to support? The software should be able to do the steps you described in the answer. Why isn't it doing that, and how can I force it to try?

3

I think there is a problem with the question. The question refers to "FTP Server" and states "support SFTP", but FTP and SFTP are two different protocols. Also, from one of the comments we can see that you clearly talk about being able to connect to "server terminal and use the shell like bash", so it's probably safe to infer that the server you're talking about is a SSH/SFTP server, and therefore the words "FTP server" in the question are misleading.

Now, keeping in mind all of the above, you cannot resolve the issue using the COMB command, as it is an extension of the FTP protocol and it doesn't even exist in any of the 7 versions (specifications) of the SFTP subsystem of the SSH protocol.

But the good news is that, regardless of the above, there is at least one multiprotocol client that does what you need: BitKinex.

In short, here's what it does:

  • connects to the SSH-2 server and logs in
  • opens the SFTP subsystem
  • performs concurrent uploads of "chunks" of your large files
  • closes the SFTP subsystem
  • opens a Shell
  • recombines the various uploaded parts into the original large files
  • closes the Shell
  • disconnects from the remote SSH-2 server

And you can script out your own custom actions, if needed. I think it would be worth giving it a try in your case.

  • You're right. I have edited my question to reflect. Thank you. Here is the original question for anyone curious. – ADTC Oct 27 '14 at 5:44
  • I tried BitKinex and while it support multi-part downloads it doesn't seem to support multi-part uploads, which is what I want. But according to your answer, it should. Am I missing something, like the need to turn on some option or write a script, or something? What does "connect to the SSH-2 server" mean? I just connected to my SFTP server. – ADTC Oct 27 '14 at 6:08
  • 1
    @ADTC, when you say "I just connect to my SFTP server" you should know that your client actually does connect to a SSH-2 server and opens the SFTP subsystem. From a purely technical standpoint there's no such thing as a "SFTP Server", because SFTP is a subsystem that runs encapsulated within the SSH-2 protocol. If the server supports all the necessary protocol extensions BitKinex will do everything for you, if the server doesn't support them then I guess your only option is to write a script, sorry. – FjodrSo Oct 27 '14 at 14:58
  • When I upload, the option for multipart is disabled. It's only available and enabled when I download. According to the log it is indeed an SSH-2 server. So what's missing, what else does the server need to support? The software should be able to do the steps you described in the answer. Why isn't it doing that, and how can I force it to try? – ADTC Oct 27 '14 at 15:02
1

You can use CuteFTP Pro:

You can greatly speed up the transfer of large files using multi-part transfers. A multi-part transfer divides large files and sends the parts over multiple FTP sessions.

You can only use multi-part uploads with servers that support the COMB command, such as GlobalSCAPE Secure FTP Server and EFT Server.

  • Why is multipart sending dependent on the protocol implementation? I would imagine as long as the user id can issue terminal commands, such commands could effectively be used to stitch parts back into one file server-side. Also how can I check if the server I'm connecting to supports COMB command? – ADTC Oct 25 '14 at 4:35
  • Issuing the terminal commands through the ftp server? – Franck Dernoncourt Oct 25 '14 at 4:38
  • It's SFTP and the same user is able to connect to the server terminal and use the shell like bash. Does that make sense? Btw how to check if COMB is supported? – ADTC Oct 25 '14 at 4:47
  • @ADTC Oh right, sorry I forgot about SFTP, that makes sense indeed. I don't know how to check if COMB is supported (except empirically): maybe since COMB is not standard there is no standard way to check it? :) but there might be some standard non-standard way for doing so, which I'm not aware of. – Franck Dernoncourt Oct 25 '14 at 5:06
  • It appears that COMB is an FTP protocol extension and not supported by SFTP. Admittedly I wasn't clear in my question. Sorry. – ADTC Oct 27 '14 at 5:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.