https://github.com/spel987/PolyUploader
Upload your files remotely to different hosts.
https://github.com/spel987/PolyUploader
Last synced: 5 months ago
JSON representation
Upload your files remotely to different hosts.
- Host: GitHub
- URL: https://github.com/spel987/PolyUploader
- Owner: spel987
- License: gpl-3.0
- Created: 2023-09-01T13:29:05.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-25T12:47:30.000Z (over 1 year ago)
- Last Synced: 2024-09-27T01:53:45.214Z (over 1 year ago)
- Language: HTML
- Homepage: https://polyuploader.vercel.app
- Size: 5.19 MB
- Stars: 23
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-useful-projects - <img src="https://icon.horse/icon/github.com" height="20px" align="center"/>/spel987/PolyUploader - Upload your files to different hosts (Useful)
README
# PolyUploader
## Upload your files remotely to different hosting sites.
π Quick overview |
β¬οΈ Installation |
π Supported hosts |
π Comparison with Mirrored.to, Mirrorace.org and MultiUp
π 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](https://p-u.vercel.app/QZZGsMNho9))
- 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](https://p-u.vercel.app/terms) when using the software.
# Installation
## - π§ Use the application by compiling it by hand:
1) **Clone the repository:**
```
git clone https://github.com/spel987/PolyUploader.git
```
2) **Install the latest version of Rust:** https://www.rust-lang.org/tools/install
3) **Install Tauri-CLI with this command:**
```
cargo install tauri-cli
```
4) **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:*
1) **Install the latest version of Node.js:** https://nodejs.org
2) **Install the dependencies:**
```
npm i
```
3) **Run the script command to build the CSS file:**
```
npm run tailwind
```
## - π₯οΈ Or simply download and run the [release](https://github.com/spel987/PolyUploader/releases/latest) (Windows only).
> 1) 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.
> 2) I'm not providing a portable version at the moment. In fact, Tauri creates a `C:\Users\\AppData\Local\PolyUploader` folder 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 |
| :------------------------------------------------------------------------- | :--------------------------- | :--------------------: | :--------------------------: | :-------------------------------: | :----------------: |
|
1fichier | https://1fichier.com | π», π€ 300 GB | π» 15 days
π€ 30 days | βοΈ | β¨ |
|
Turbobit | https://turbobit.net | π» 200 MB
π€ 200 GB | π» 7 days
π€ 30 days | - | β¨ |
|
Bowfile | https://bowfile.com | 20 GB | 30 days | βοΈ | - |
|
Gofile | https://gofile.io | π», π€ infinite | π», π€ 10 days | βοΈ | β¨ |
|
Hitfile | https://hitfile.net | π» 4 GB
π€ 100 GB | π», π€ 30 days | - | β¨ |
|
1Cloudfile | https://1cloudfile.com | 5 GB | 30 days | βοΈ | - |
|
file-upload.org | https://file-upload.org | 200 MB | 60 days | - | - |
|
RapidFileShare | http://rapidfileshare.net | 512 MB | 5 days | βοΈ | - |
|
Upload.ee | https://upload.ee | 100 MB | 50 days | βοΈ | - |
|
Netu ποΈ | https://netu.ac | π» 8 GB
π€ 100 GB | π», π€ 30 days | - | β¨ |
|
Buzzheavier | https://buzzheavier.com | π», π€ infinite | π», π€ 7 days | π§ | β¨ |
|
HexUpload | https://hexload.com | 2 GB | 60 days | βοΈ | - |
|
VikingFile | https://vikingfile.com | 10 GB | 20 days | - | - |
| DailyUploads | https://dailyuploads.net | infinite | 30 days | - | - |
|
UsersDrive | https://usersdrive.com | 2.25 GB | 10 days | βοΈ | - |
|
Send.now | https://send.now | 100 GB | 15 days | - | - |
|
Mexa.sh | https://mexa.sh | 500 MB | 60 days | βοΈ | - |
|
MegaUp | https://megaup.net | 5 GB | 60 days | βοΈ | - |
|
Uploadify | https://uploadify.net | 2 GB | infinite | βοΈ | - |
|
Clicknupload | https://clicknupload.click | 2 GB | 7 days | βοΈ | - |
|
Filespace | https://filespace.com | 150 MB | 10 days | βοΈ | - |
|
Gulfup | https://www.gulf-up.com | π» 200 MB
π€ 10 GB | π» 10 days
π€ 30 days | βοΈ | β¨ |
|
Fastupload | https://fastupload.io | 50 GB | 30 days | βοΈ | - |
| UploadHive | https://uploadhive.com | infinite | 30 days | - | - |
|
DepositFiles | https://dfiles.eu | 10 GB | 90 days | - | - |
|
Download.gg | https://download.gg | 25 GB | infinite | βοΈ | - |
|
Ranoz | https://ranoz.gg | 5 GB | 30 GB | - | - |
|
Sendvid ποΈ | https://sendvid.com | 1 GB | 90 days | - | - |
|
Uploady | https://uploady.io | π» 1 GB
π€ 100 GB | π», π€ 30 days | βοΈ | β¨ |
|
AnonTransfer | https://anontransfer.com | 1 GB | 30 days | - | - |
|
FileMirage | https://filemirage.com | π», π€ 50 GB | π», π€ 60 days | - | β¨ |
|
Litterbox | https://litterbox.catbox.moe | 1 GB | 24 hours | - | - |
| Temp.sh | https://temp.sh | 4 GB | 3 days | - | - |
|
TmpFiles.org | https://tmpfiles.org | 100 MB | 1 hour | - | - |
|
Gofile.to | https://gofile.to | 5 GB | infinite | - | - |
|
Free.fr | https://transfert.free.fr | 10 GB | 7 days | βοΈ | - |
|
Uguu.se | https://uguu.se | 32 MB | 3 hours | - | - |
|
lurkmore Uguu | https://upload.lurkmore.com | 1.28 GB | 24 hours | - | - |
|
Uguu | https://uguu.aishiteiru.moe/ | 128 MB | 24 hours | - | - |
|
Pomf.lain.la | https://pomf.lain.la | 1 GB | infinite | - | - |
|
Filer.net | https://filer.net | 500 MB | 180 days | - | - |
|
Filebin | https://filebin.net | infinite | 7 days | βοΈ | - |
|
DoUploads | https://douploads.net | 1 GB | 10 days | βοΈ | - |
| Dataupload | https://dataupload.net | 300 MB | 30 days | βοΈ | - |
|
Upstore | https://upstore.net | 1 GB | 30 days | - | - |
|
uFile | https://ufile.io | 5 GB | 30 days | - | - |
|
KrakenFiles | https://krakenfiles.com | π» 1 GB
π€ 5 GB | π» 30 days
π€ 90 days | π§ | β¨ |
| Rapidshare.io | https://rapidshare.io | 1 GB | 10 days | βοΈ | - |
|
Media.cm ποΈ | https://media.cm | 300 MB | 90 days | - | - |
|
Oshi.at | https://oshi.at | 5 GB | 2 hours | βοΈ | - |
| bashupload | https://bashupload.com | 50 GB | 3 days | - | - |
|
Tommo.team | https://tommo.team | 4 GB | 30 days | - | - |
| Desiupload | https://desiupload.co | infinite | 15 days | - | - |
|
tempfiles.ninja | https://tempfiles.ninja | 100 MB | 24 hours | βοΈ | - |
|
Fileditch | https://fileditch.com | 5 GB | 30 days | - | - |
|
Up2Share | https://up2sha.re | π» 64 MB
π€ 1 GB | π», π€ 30 days | π§ | β¨ |
| Dbree | https://dbree.org | 100 MB | 60 days | - | - |
|
udrop | https://udrop.com | 10 GB | 7 days | βοΈ | - |
|
Tempsend | https://tempsend.com | 2 GB | 7 days | - | - |
| Curl.by | https://curl.by | 32 MB | 30 days | - | - |
|
Uptomega | https://uptomega.net | 1 GB | 3 days | - | - |
| Data Vaults | https://datavaults.co | 1 GB | 3 days | - | - |
|
qu.ax | https://qu.ax | 256 MB | infinite | - | - |
|
FileTmp | https://filetmp.com | 300 MB | 5 hours | - | - |
|
CCU.to | https://ccu.to | 5 GB | 3 days | - | - |
|
Dosya.co | https://dosya.co | 2 GB | 45 days | βοΈ | - |
|
ImgBB | https://imgbb.com | 32 MB | infinite | - | - |
|
IMG Bank | https://imgbank.cz | 4 MB | infinite | - | - |
| ki.tc | https://ki.tc | 400 MB | depends on the file size[^1] | - | - |
|
UploadFile.pl | https://uploadfile.pl | 5.98 GB | 30 days | βοΈ | - |
|
NippyFile | https://nippyfile.com | 100 MB | infinite | - | - |
|
Filestore | https://filestore.to | 2 GB | 15 days | βοΈ | - |
|
Fast Down | https://down.fast-down.com | 10 GB | 30 days | - | - |
|
Theuser.cloud | https://theuser.cloud | 5 GB | 30 days | βοΈ | - |
|
CyberFile | https://cyberfile.me | 10 GB | 5 days | βοΈ | - |
|
end2end | https://end2end.tech | 2 GB | infinite | βοΈ | - |
|
c-v.sh | 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] | - | - |
|
1filesharing | https://1filesharing.com | 1 GB | 10 days | βοΈ | - |
|
Nopaste | https://nopaste.net | 2 GB | 21 days | - | - |
|
TmpSend | https://tmpsend.com | 1 GB | 7 days | - | - |
|
Mega4up | https://mega4upload.net | 200 MB | 15 days | βοΈ | - |
|
Hostuje | https://hostuje.net | 2.5 GB | 90 days | βοΈ | - |
|
UploadFlix | https://uploadflix.com | 3 GB | 20 days | βοΈ | - |
|
DZ4Up | https://dz4up.com | 2 GB | 30 days | βοΈ | - |
|
WDFiles | https://wdfiles.ru | 3 GB | 15 days | βοΈ | - |
|
m1rai | https://up.m1r.ai | 100 MB | infinite | - | - |
|
s3kai | https://up.s3k.ai | 1 GB | 15 days | - | - |
|
XUP | 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 | βοΈ | - |
|
DropMB | https://dropmb.com | 512 MB | 365 days | - | - |
|
Nelion | https://nelion.me | 20 MB | 7 days | βοΈ | - |
|
Atomauth | https://atomauth.com | 1 GB | infinite | - | - |
|
imouto.kawaii.su | https://imouto.kawaii.su | 20 MB | 30 days | - | - |
|
DoodStream ποΈ | https://doodstream.com | infinite | 60 days | - | π |
|
Pixeldrain | https://pixeldrain.com | 20 GB | 90 days | π§ | π |
|
Drop.download | https://drop.download | 50 GB | 10 days | - | π |
|
FileMoon ποΈ | https://filemoon.sx | 50 GB | 10 days | - | π |
|
Catbox | https://catbox.moe | 200 MB | infinite | π§ | π |
|
ddownload | https://ddownload.com | 2 GB | 30 days | π§ | π |
|
mp4upload ποΈ | https://mp4upload.com | 500 MB | 30 days | - | π |
|
DropGalaxy | https://dropgalaxy.com | 5 GB | 120 days | - | π |
|
Nitroflare | https://nitroflare.com | 10 GB | 90 days | - | π |
|
Vidoza ποΈ | https://vidoza.net | 50 GB | 30 days | - | π |
|
Katfile | https://katfile.com | 5 GB | 10 days | π§ | π |
|
Rapidgator | https://rapidgator.net | 80 GB | 30 days | π§ | π |
|
StreamA2Z ποΈ | https://streama2z.com | 10 GB | 60 days | π§ | π |
|
StreamWish ποΈ | https://streamwish.com | 50 GB | infinite | - | π |
|
StreamRuby ποΈ | https://streamruby.com | 50 GB | 10 days | - | π |
|
Voe.sx ποΈ | https://voe.sx | 25 GB | 60 days | π§ | π |
|
DevUploads | https://devuploads.com | 5 GB | 30 days | - | π |
|
Darkibox ποΈ | https://darkibox.com | 10 GB | 30 days | π§ | π |
|
Filegram ποΈ | https://filegram.to | 15 GB | 30 days | π§ | π |
|
Goodstream ποΈ | https://goodstream.one | 25 GB | 60 days | π§ | π |
|
Dropload ποΈ | https://dropload.io | 7 GB | 30 days | - | π |
|
GeTT | https://gett.su | 2 GB | 30 days | - | π |
|
OneUpload ποΈ | https://oneupload.to | 4 GB | 20 days | π§ | π |
|
EarnVids ποΈ | https://earnvids.com | 50 GB | 30 days | - | π |
|
Vinovo ποΈ | https://vinovo.si | 15 GB | 60 days | - | π |
|
Uploadrar | https://uploadrar.com | 30 GB | 30 days | - | π |
|
Vidguard ποΈ | https://vidguard.to | 15 GB | 30 days | π§ | π |
|
SaveFiles ποΈ | https://savefiles.com | 20 GB | 15 days | π§ | π |
|
Filespayouts | https://filespayouts.com | 10 GB | 60 days | - | π |
|
Fileaxa | https://fileaxa.com | 1 GB | 15 days | - | π |
|
SuperVideo ποΈ | https://supervideo.cc | 6 GB | 30 days | - | π |
|
MixLoads | https://mixloads.to | 30 GB | 20 days | - | π |
|
Up4Stream | https://up4stream.com | 20 GB | 15 days | π§ | π |
|
Uqload ποΈ | https://uqload.cx | 4 GB | 30 days | - | π |
|
LuluStream ποΈ | https://lulustream.com | 150 GB | 10 days | - | π |
|
UpFiles | https://upfiles.com | 25 GB | 30 days | - | π |
|
StreamBolt ποΈ | https://streambolt.tv | 5 GB | 30 days | - | π |
> [Don't know where to get your API key for a host?](https://polyuploader.vercel.app/get-api-keys)
### π 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](https://github.com/spel987/PolyUploader/issues).
πΌοΈ See screenshots of the application

# Comparison with [Mirrored.to](https://mirrored.to), [Mirrorace.org](https://mirrorace.org) and [MultiUp](https://multiup.io)
| | PolyUploader | [Mirrored.to](https://mirrored.to) | [Mirrorace.org](https://mirrorace.org) | [MultiUp](https://multiup.io) |
| :------------------------------------------------------------------------ | :----------: | :--------------------------------: | :------------------------------------: | :---------------------------: |
| 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](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`](https://github.com/Bassetts/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-cors` proxy via its library interface.
- Requests that require CORS bypass are automatically prefixed in the frontend.
## ποΈ Example
```rust title="main.rs"
// 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));
});
}
```
```js title="example.js"
// 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](https://github.com/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](https://github.com/spel987/PolyUploader-website): contains the documentation
- [PolyUploader-API](https://github.com/spel987/PolyUploader-API): powers the statistics, the unique shareable bundle links and other things to do with the database
## β Star history
# Credits
### Developer:
- spel987
Email: `spel987@pm.me`
GitHub: https://github.com/spel987
### Contributors:
- Tux 528 ([GitHub](https://github.com/Tux528)): 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/authors/dinosoftlabs)): https://www.flaticon.com/free-icon/box_5899516
### The sites used
All the sites listed in the table [here](#supported-hosts).
# Suggestions
If you have any questions or suggestions, please open an [issue](https://github.com/spel987/PolyUploader/issues).
[^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.
