PolyUploader
Upload your files remotely to different hosting sites.
π Link protection | π Telemetry | π οΈ Managing CORS | ποΈ Notes from the developer | π€ Credits
Quick overview:
- Upload from local storage or via URL to 133 hosts at once
- Link your own API keys for compatible hosts
- View a detailed history of your uploads with expiration status and delete buttons
- Create and manage upload profiles to automate frequent tasks
- Generate a single sharing link to bundle multiple host links (e.g. example)
- Protect your upload links after uploading using link protection services (PrivateBin, SafeLinking, Filecrypt, and more), either as a bundle or link by link
- No account required, fully open-source, fast, and free
- Built with a focus on speed and security using Rust backend
Be sure to respect the terms when using the software.
Installation
- π§ Use the application by compiling it by hand:
- Clone the repository:
git clone https://github.com/spel987/PolyUploader.git
- Install the latest version of Rust: https://www.rust-lang.org/tools/install
- Install Tauri-CLI with this command:
cargo install tauri-cli
- Start compilation with this command:
cargo tauri build
You'll find the installer in the .\src-tauri\target\release\bundle folder.
Or start debugging the application with this command:
cargo tauri dev
Optional: If you wish to modify the CSS with TailwindCSS:
- Install the latest version of Node.js: https://nodejs.org
- Install the dependencies:
npm i
- Run the script command to build the CSS file:
npm run tailwind
- π₯οΈ Or simply download and run the release (Windows only).
- For the moment, the application is only available on Windows. I tried to build the application for Linux but I kept getting webkit errors and on top of that Linux doesn't handle certain CSS effects in the same way. The application wouldn't look very good and would be full of bugs. However, why not work to solve this problem in future versions.
- I'm not providing a portable version at the moment. In fact, Tauri creates a
C:\Users\<User>\AppData\Local\PolyUploaderfolder containing the data required by the Webview.
Supported hosts
π All hosts
ποΈ Legend
| Column | Emoji(s) | Meaning(s) |
|---|---|---|
| Name | ποΈ | ποΈ = Specialist video streaming host |
| π Max file size / π File retention | π», π€ | π» = Anonymous upload limits π€ = Account-based upload limits |
| ποΈ Supports manual file deletion | βοΈ, π§, - | βοΈ = Yes π§ = Only with API key - = Not supported |
| π API key support | β¨, π, - | β¨ = API key optional π = API key required - = Not supported |
π Hosts
| Name | Url | π Max file size | π File retention time | ποΈ Supports manual file deletion | π API key support |
|---|---|---|---|---|---|
| https://1fichier.com | π», π€ 300 GB | π» 15 days π€ 30 days |
βοΈ | β¨ | |
| https://turbobit.net | π» 200 MB π€ 200 GB |
π» 7 days π€ 30 days |
- | β¨ | |
| https://bowfile.com | 20 GB | 30 days | βοΈ | - | |
| https://gofile.io | π», π€ infinite | π», π€ 10 days | βοΈ | β¨ | |
| https://hitfile.net | π» 4 GB π€ 100 GB |
π», π€ 30 days | - | β¨ | |
| https://1cloudfile.com | 5 GB | 30 days | βοΈ | - | |
| https://file-upload.org | 200 MB | 60 days | - | - | |
| http://rapidfileshare.net | 512 MB | 5 days | βοΈ | - | |
| https://upload.ee | 100 MB | 50 days | βοΈ | - | |
| https://netu.ac | π» 8 GB π€ 100 GB |
π», π€ 30 days | - | β¨ | |
| https://buzzheavier.com | π», π€ infinite | π», π€ 7 days | π§ | β¨ | |
| https://hexload.com | 2 GB | 60 days | βοΈ | - | |
| https://vikingfile.com | 10 GB | 20 days | - | - | |
| DailyUploads | https://dailyuploads.net | infinite | 30 days | - | - |
| https://usersdrive.com | 2.25 GB | 10 days | βοΈ | - | |
| https://send.now | 100 GB | 15 days | - | - | |
| https://mexa.sh | 500 MB | 60 days | βοΈ | - | |
| https://megaup.net | 5 GB | 60 days | βοΈ | - | |
| https://uploadify.net | 2 GB | infinite | βοΈ | - | |
| https://clicknupload.click | 2 GB | 7 days | βοΈ | - | |
| https://filespace.com | 150 MB | 10 days | βοΈ | - | |
| https://www.gulf-up.com | π» 200 MB π€ 10 GB |
π» 10 days π€ 30 days |
βοΈ | β¨ | |
| https://fastupload.io | 50 GB | 30 days | βοΈ | - | |
| UploadHive | https://uploadhive.com | infinite | 30 days | - | - |
| https://dfiles.eu | 10 GB | 90 days | - | - | |
| https://download.gg | 25 GB | infinite | βοΈ | - | |
| https://ranoz.gg | 5 GB | 30 GB | - | - | |
| https://sendvid.com | 1 GB | 90 days | - | - | |
| https://uploady.io | π» 1 GB π€ 100 GB |
π», π€ 30 days | βοΈ | β¨ | |
| https://anontransfer.com | 1 GB | 30 days | - | - | |
| https://filemirage.com | π», π€ 50 GB | π», π€ 60 days | - | β¨ | |
| https://litterbox.catbox.moe | 1 GB | 24 hours | - | - | |
| Temp.sh | https://temp.sh | 4 GB | 3 days | - | - |
| https://tmpfiles.org | 100 MB | 1 hour | - | - | |
| https://gofile.to | 5 GB | infinite | - | - | |
| https://transfert.free.fr | 10 GB | 7 days | βοΈ | - | |
| https://uguu.se | 32 MB | 3 hours | - | - | |
| https://upload.lurkmore.com | 1.28 GB | 24 hours | - | - | |
| https://uguu.aishiteiru.moe/ | 128 MB | 24 hours | - | - | |
| https://pomf.lain.la | 1 GB | infinite | - | - | |
| https://filer.net | 500 MB | 180 days | - | - | |
| https://filebin.net | infinite | 7 days | βοΈ | - | |
| https://douploads.net | 1 GB | 10 days | βοΈ | - | |
| Dataupload | https://dataupload.net | 300 MB | 30 days | βοΈ | - |
| https://upstore.net | 1 GB | 30 days | - | - | |
| https://ufile.io | 5 GB | 30 days | - | - | |
| https://krakenfiles.com | π» 1 GB π€ 5 GB |
π» 30 days π€ 90 days |
π§ | β¨ | |
| Rapidshare.io | https://rapidshare.io | 1 GB | 10 days | βοΈ | - |
| https://media.cm | 300 MB | 90 days | - | - | |
| https://oshi.at | 5 GB | 2 hours | βοΈ | - | |
| bashupload | https://bashupload.com | 50 GB | 3 days | - | - |
| https://tommo.team | 4 GB | 30 days | - | - | |
| Desiupload | https://desiupload.co | infinite | 15 days | - | - |
| https://tempfiles.ninja | 100 MB | 24 hours | βοΈ | - | |
| https://fileditch.com | 5 GB | 30 days | - | - | |
| https://up2sha.re | π» 64 MB π€ 1 GB |
π», π€ 30 days | π§ | β¨ | |
| Dbree | https://dbree.org | 100 MB | 60 days | - | - |
| https://udrop.com | 10 GB | 7 days | βοΈ | - | |
| https://tempsend.com | 2 GB | 7 days | - | - | |
| Curl.by | https://curl.by | 32 MB | 30 days | - | - |
| https://uptomega.net | 1 GB | 3 days | - | - | |
| Data Vaults | https://datavaults.co | 1 GB | 3 days | - | - |
| https://qu.ax | 256 MB | infinite | - | - | |
| https://filetmp.com | 300 MB | 5 hours | - | - | |
| https://ccu.to | 5 GB | 3 days | - | - | |
| https://dosya.co | 2 GB | 45 days | βοΈ | - | |
| https://imgbb.com | 32 MB | infinite | - | - | |
| https://imgbank.cz | 4 MB | infinite | - | - | |
| ki.tc | https://ki.tc | 400 MB | depends on the file size[^1] | - | - |
| https://uploadfile.pl | 5.98 GB | 30 days | βοΈ | - | |
| https://nippyfile.com | 100 MB | infinite | - | - | |
| https://filestore.to | 2 GB | 15 days | βοΈ | - | |
| https://down.fast-down.com | 10 GB | 30 days | - | - | |
| https://theuser.cloud | 5 GB | 30 days | βοΈ | - | |
| https://cyberfile.me | 10 GB | 5 days | βοΈ | - | |
| https://end2end.tech | 2 GB | infinite | βοΈ | - | |
| https://c-v.sh | 512 MB | depends on the file size[^1] | βοΈ | - | |
| x0.at | https://x0.at | 512 MB | depends on the file size[^1] | - | - |
| https://1filesharing.com | 1 GB | 10 days | βοΈ | - | |
| https://nopaste.net | 2 GB | 21 days | - | - | |
| https://tmpsend.com | 1 GB | 7 days | - | - | |
| https://mega4upload.net | 200 MB | 15 days | βοΈ | - | |
| https://hostuje.net | 2.5 GB | 90 days | βοΈ | - | |
| https://uploadflix.com | 3 GB | 20 days | βοΈ | - | |
| https://dz4up.com | 2 GB | 30 days | βοΈ | - | |
| https://wdfiles.ru | 3 GB | 15 days | βοΈ | - | |
| https://up.m1r.ai | 100 MB | infinite | - | - | |
| https://up.s3k.ai | 1 GB | 15 days | - | - | |
| https://www.xup.in | 100 MB | 150 days | βοΈ | - | |
| Filepv | https://filepv.com | 2 GB | 30 days | - | - |
| F2H | https://f2h.io | 1 GB | 50 days | - | - |
| ayaya.beauty | https://ayaya.beauty | 1 GB | 14 days | βοΈ | - |
| https://dropmb.com | 512 MB | 365 days | - | - | |
| https://nelion.me | 20 MB | 7 days | βοΈ | - | |
| https://atomauth.com | 1 GB | infinite | - | - | |
| https://imouto.kawaii.su | 20 MB | 30 days | - | - | |
| https://doodstream.com | infinite | 60 days | - | π | |
| https://pixeldrain.com | 20 GB | 90 days | π§ | π | |
| https://drop.download | 50 GB | 10 days | - | π | |
| https://filemoon.sx | 50 GB | 10 days | - | π | |
| https://catbox.moe | 200 MB | infinite | π§ | π | |
| https://ddownload.com | 2 GB | 30 days | π§ | π | |
| https://mp4upload.com | 500 MB | 30 days | - | π | |
| https://dropgalaxy.com | 5 GB | 120 days | - | π | |
| https://nitroflare.com | 10 GB | 90 days | - | π | |
| https://vidoza.net | 50 GB | 30 days | - | π | |
| https://katfile.com | 5 GB | 10 days | π§ | π | |
| https://rapidgator.net | 80 GB | 30 days | π§ | π | |
| https://streama2z.com | 10 GB | 60 days | π§ | π | |
| https://streamwish.com | 50 GB | infinite | - | π | |
| https://streamruby.com | 50 GB | 10 days | - | π | |
| https://voe.sx | 25 GB | 60 days | π§ | π | |
| https://devuploads.com | 5 GB | 30 days | - | π | |
| https://darkibox.com | 10 GB | 30 days | π§ | π | |
| https://filegram.to | 15 GB | 30 days | π§ | π | |
| https://goodstream.one | 25 GB | 60 days | π§ | π | |
| https://dropload.io | 7 GB | 30 days | - | π | |
| https://gett.su | 2 GB | 30 days | - | π | |
| https://oneupload.to | 4 GB | 20 days | π§ | π | |
| https://earnvids.com | 50 GB | 30 days | - | π | |
| https://vinovo.si | 15 GB | 60 days | - | π | |
| https://uploadrar.com | 30 GB | 30 days | - | π | |
| https://vidguard.to | 15 GB | 30 days | π§ | π | |
| https://savefiles.com | 20 GB | 15 days | π§ | π | |
| https://filespayouts.com | 10 GB | 60 days | - | π | |
| https://fileaxa.com | 1 GB | 15 days | - | π | |
| https://supervideo.cc | 6 GB | 30 days | - | π | |
| https://mixloads.to | 30 GB | 20 days | - | π | |
| https://up4stream.com | 20 GB | 15 days | π§ | π | |
| https://uqload.cx | 4 GB | 30 days | - | π | |
| https://lulustream.com | 150 GB | 10 days | - | π | |
| https://upfiles.com | 25 GB | 30 days | - | π | |
| https://streambolt.tv | 5 GB | 30 days | - | π |
π Details of hosts
| Category | Count |
|---|---|
| π Number of hosts | 133 |
| π Hosts not requiring an API key | 96 |
| β¨ Hosts supporting optional API key | 11 |
| π Hosts requiring an API key | 37 |
| ποΈ Hosts supporting manual deletion | 58 |
| ποΈ Specialist video streaming host | 24 |
If you know of a host that I can add, please open an issue.
πΌοΈ See screenshots of the application
Link Protection
After uploading a file, PolyUploader lets you protect the generated host links using a variety of link protection and encrypted paste services. You can protect your links either as a bundle (all host links grouped into a single protected page) or link by link (one protected page per host link). This feature is accessible directly from the results view once the upload is complete.
π Supported services
| Name | Url | π API key | π Custom instance | ποΈ Deletion |
|---|---|---|---|---|
| https://privatebin.net (editable) | - | βοΈ | βοΈ | |
| https://cryptgeon.org | - | - | - | |
| https://safelinking.net | - | - | - | |
| https://pastes.dev | - | - | - | |
| https://katb.in | - | - | - | |
| https://filecrypt.cc | π Required | - | βοΈ |
Only PrivateBin allows you to specify a custom compatible instance (default:
privatebin.net).
Comparison with Mirrored.to, Mirrorace.org and MultiUp
| PolyUploader | Mirrored.to | Mirrorace.org | MultiUp | |
|---|---|---|---|---|
| Number of hosting providers supported | 133 | 42[^2] | 54[^3] | 44 |
| No need for a user account to fully use the service | βοΈ | β | β | β |
| Maximum file size limit | infinite[^4] | 750MB | 5GB | 500GB |
| History of uploaded files | βοΈ | β οΈ[^5] | β οΈ[^5] | β οΈ[^5] |
| Flags up offline hosts and prevents the user from uploading files to them | βοΈ | β οΈ[^6] | β | βοΈ |
| Uploaded file can be deleted[^7] | βοΈ | β | β | β |
| Ability to upload a file from a URL | βοΈ | βοΈ | βοΈ | βοΈ |
| Ability to upload multiple files simultaneously | β | βοΈ[^8] | βοΈ[^9] | βοΈ |
| Profile features | βοΈ | β οΈ[^10] | β οΈ[^10] | β οΈ[^10] |
| Created links accessible from a shareable link | βοΈ | βοΈ | βοΈ | βοΈ |
| Supports user API keys for concerned hosts | βοΈ | βοΈ | βοΈ | βοΈ |
| Open-source | βοΈ | β | β | β |
The aim of this comparison is not to discredit Mirrored.to, Mirrorace.org and MultiUp or simply to say that PolyUploader is better. It is only a summary table of the functions supported or not by the 4 services to help you choose.
ποΈ Legend
| Emoji | Meaning |
|---|---|
| βοΈ | Yes |
| β | No |
| β οΈ | Partially |
Telemetry
PolyUploader collects minimal usage data (telemetry) to help improve the service. Only the host names and upload dates are collected, never the full upload links.
This data is used to generate anonymous statistics available at https://p-u.vercel.app/statistics. Itβs genuinely helpful for me as a developer (seeing that my software is used and works well is both motivating and rewarding).
For those who are cautious about telemetry, the PolyUploader API is fully open-source and publicly available here: https://github.com/spel987/PolyUploader-API.
Managing CORS
To bypass CORS restrictions on certain hosts, PolyUploader uses a lightweight local HTTP proxy named warp-cors. Instead of running the proxy as a standalone executable (warp-cors.exe), the logic has been integrated directly into the Rust backend. I've tweaked the warp-cors code to better suit my needs, especially for handling session cookies.
π€ How it works
At startup, the app launches the warp-cors proxy server internally (on port 61337). Rather than sending requests directly to https://example.com, they're routed through:
http://127.0.0.1:61337/https://example.com
This avoids any browser CORS errors entirely.
πͺ Integration
- The Rust backend imports and launches the
warp-corsproxy via its library interface. - Requests that require CORS bypass are automatically prefixed in the frontend.
ποΈ Example
// Launch the warp-cors proxy
use tokio::runtime::Builder;
use warp_cors::app::{Config, run};
fn main() {
std::thread::spawn(|| {
let rt = Builder::new_multi_thread()
.enable_all()
.build()
.unwrap();
let cfg = Config { host: "0.0.0.0".into(), port: 61337 };
rt.block_on(run(cfg));
});
}
// Use the proxy
const proxy = "http://127.0.0.1:61337/";
upload_to_host([
proxy + "https://upload.gofile.io/uploadfile/",
"POST",
sent_data_form
]);
Notes from the developer
To handle file uploads, I rely on various methods depending on the host: some provide APIs, others require converting cURL commands to JavaScript, and a few need request emulation based on their frontend behavior.
Maintaining support for over a hundred hosts has been a real challenge, especially as Iβm working solo on this project while still pursuing my studies. While many hosts share similar logic (a lot of them run on XFileSharing Pro), each one brings its own quirks, making the work complex and often repetitive.
Special thanks to Tux 528 (@Tux528) for his valuable external feedback and all the ideas he brought to help improve and optimize the project.
If you enjoy the work and find it useful, feel free to β star the repository, it truly means a lot!
If youβd like to learn more, feel free to explore the repositories:
- PolyUploader-website: contains the documentation
- PolyUploader-API: powers the statistics, the unique shareable bundle links and other things to do with the database
β Star history
Credits
Developer:
- spel987
Email:[email protected]
GitHub: https://github.com/spel987
Contributors:
- Tux 528 (GitHub): UX design, UI polishing, valuable feedback, testing, and ideas for improvement.
Backend:
- Rust: https://www.rust-lang.org/
- Tauri: https://tauri.app/
- warp-cors: https://github.com/Bassetts/warp-cors/
Frontend:
- Tailwind CSS: https://tailwindcss.com/
- Font Awesome: https://fontawesome.com/
- Flaticon (and author DinosoftLabs): https://www.flaticon.com/free-icon/box_5899516
The sites used
All the sites listed in the table here.
Suggestions
If you have any questions or suggestions, please open an issue.
[^1]: "depends on the file size" means that the host keeps your files according to their weight. They use different algorithms. For more information, please visit the chosen site. [^2]: Only 10 hosts are proposed when we don't use an account. [^3]: Only 36 hosts are proposed when we don't use an account.. Many hosts are no longer supported, and I've found that around 60% of hosts are no longer functional. [^4]: File size is not restricted by the software, but by the host. It all depends on the host's capacity. [^5]: History is only available to registered users. [^6]: Offline hosts are not deactivated, we need to go to "https://www.mirrored.to/p/host-status" for status information. [^7]: Provided that the host is able to delete it and offers the ability to do so. [^8]: This feature is limited to 20 files. [^9]: This feature is limited to 50 files. [^10]: Only a "profile" that checks off the favorite hosts selected in the settings. User account required.
