Upload requests splitting #300

Closed
opened 2026-01-19 18:29:48 +00:00 by michael · 1 comment
Owner

Originally created by @rubenmdh on GitHub.

Hello,

I strumbled across the transfer.sh and I instantly fell in love with it because of the functionalities it offers. I've visited again the website and I see that it's closing, but as it is open source I can make my own instance.

The problem is that I am using CloudFlare and this service has a maximum upload size per single request, being itself 100MiB and obviously, I can't upload anything larger than that to my transfer.sh instance. I can't just stop using CloudFlare (even if I want it so hard) for several reasons:

  • CloudFlare hides my server IP (making it somewhat harder to get DDoS attacks passthrough)
  • My transfer.sh instance is running in IPv6-only (NAT VPS) and CF translates the IPv6 to v4 for IPv4-only clients (like me)

The possible solutions that have come into my mind are:

  • Dropping CF and using Nginx as reverse proxy to redirect IPv4 requests to the correct port while using :443 in the browser (IPv6 clients directly connect to the :443 port)
  • Find another service like CloudFlare to hide server's IP and make IPv6toIPv4 translations
  • Splitting upload request into 100MiB chunks with several requests.

So the question is, would the last option be feasible for transfer.sh? I know it's possible as it is present in other scripts such as YetiShare (I've tried it myself). I think something like ResumableJS may be useful.

Best regards,
Rubén.

Originally created by @rubenmdh on GitHub. Hello, I strumbled across the transfer.sh and I instantly fell in love with it because of the functionalities it offers. I've visited again the website and I see that it's closing, but as it is open source I can make my own instance. The problem is that I am using CloudFlare and this service has a maximum upload size per single request, being itself 100MiB and obviously, I can't upload anything larger than that to my transfer.sh instance. I can't just stop using CloudFlare (even if I want it so hard) for several reasons: - CloudFlare hides my server IP (making it somewhat harder to get DDoS attacks passthrough) - My transfer.sh instance is running in IPv6-only (NAT VPS) and CF translates the IPv6 to v4 for IPv4-only clients (like me) The possible solutions that have come into my mind are: - Dropping CF and using Nginx as reverse proxy to redirect IPv4 requests to the correct port while using :443 in the browser (IPv6 clients directly connect to the :443 port) - Find another service like CloudFlare to hide server's IP and make IPv6toIPv4 translations - Splitting upload request into 100MiB chunks with several requests. So the question is, would the last option be feasible for transfer.sh? I know it's possible as it is present in other scripts such as YetiShare (I've tried it myself). I think something like ResumableJS may be useful. Best regards, Rubén.
Author
Owner

@paolafrancesca commented on GitHub:

@rubenmdh the last option is not feasible for transfer.sh, I'm sorry. Chucked uploads of the same file through several requests is not covered by any HTTP standard. Any solution would be a specific and arbitrary implementation that will not fit pain and properly with a cli http client, that's the main goal of transfer.sh, so I don't plan any support for it.

You may solve the issue splitting a file bigger than 100MiB before uploading, upload in several requests the resulting files and then asking them together in a zip o tgz archive (that transfer.sh support through a request in the format: https://transfer.sh/{/ZPzh7/filenamepart1,/Dz1k9/filenamepart2}.tar.gz)

@paolafrancesca commented on GitHub: @rubenmdh the last option is not feasible for transfer.sh, I'm sorry. Chucked uploads of the same file through several requests is not covered by any HTTP standard. Any solution would be a specific and arbitrary implementation that will not fit pain and properly with a cli http client, that's the main goal of transfer.sh, so I don't plan any support for it. You may solve the issue splitting a file bigger than 100MiB before uploading, upload in several requests the resulting files and then asking them together in a zip o tgz archive (that transfer.sh support through a request in the format: `https://transfer.sh/{/ZPzh7/filenamepart1,/Dz1k9/filenamepart2}.tar.gz`)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dutchcoders/transfer.sh#300