File uploader with support for multiple hosts and progress reporting written in Go. Large file-friendly.
Windows, Linux, macOS and Android binaries
Upload single file to anonfiles:
go-ul_x64.exe anonfiles -f G:\file.bin
Upload two files to anonfiles and catbox and write output template:
go-ul_x64.exe anonfiles catbox -f G:\file.bin G:\file2.bin -o urls.txt
Upload all files in G:\stuff
to zippyshare recursively with a 500 kB/s limit and write output template:
go-ul_x64.exe zippyshare -d G:\stuff -r -o urls.txt -l 0.5
Upload a single file to FTP server to /x/y/ and overwrite it if it already exists.
go-ul_x64.exe ftp -f G:\file.bin -U ftp://myusername:mypassword@ftp.server.com:21/x/y/ -O
Usage: go-ul_x64.exe [--outpath OUTPATH] [--wipe] [--files FILES] [--private] [--template TEMPLATE] [--overwrite] [--user USER] [--directories DIRECTORIES] [--recursive] [--speedlimit SPEEDLIMIT] HOSTS [HOSTS ...]
Positional arguments:
HOSTS Which hosts to upload to.
Options:
--outpath OUTPATH, -o OUTPATH
Path of text file to write template to. It will be created if it doesn't already exist.
--wipe, -w Wipe output text file on startup.
--files FILES, -f FILES
--private, -P *Set upload as private.
--template TEMPLATE, -t TEMPLATE
Output text file template. Vars: filename, filePath, fileUrl [default: # {{.filename}}\n{{.fileUrl}}\n]
--overwrite, -O *Overwrite file on host if it already exists.
--user USER, -u USER *User form for FTP. Folders will be created recursively if they don't already exist.
--directories DIRECTORIES, -d DIRECTORIES
--recursive, -r Include subdirectories.
--speedlimit SPEEDLIMIT, -l SPEEDLIMIT
*Upload speed limit in megabytes. Example: 0.5 = 500 kB/s, 1 = 1 MB/s, 1.5 = 1.5 MB/s. [default: -1]
--joboutpath JOBOUTPATH, -j JOBOUTPATH
Path of JSON to write jobs to.
--help, -h display this help and exit
* = Not supported for all hosts.
Default: # {{.filename}}\n{{.fileUrl}}\n
Output with the default template:
# 2.jpg
https://anonfiles.com/Hde2H4F5ue/2_jpg
Vars: filename, filePath, fileUrl
Host | Argument | Size Limit |
---|---|---|
anonfiles | anonfiles | 20 GB |
Catbox | catbox | 200 MB |
file.io | fileio | 2 GB |
Filemail | filemail | 5 GB |
FTP | ftp | - |
Gofile | gofile | unlim |
KrakenFiles | krakenfiles | 1 GB |
LetsUpload | letsupload | 10 GB |
MegaUp | megaup | 5 GB |
MixDrop | mixdrop | unlim |
pixeldrain | pixeldrain | 10 GB |
Racaty | racaty | 10 GB |
transfer.sh | transfersh | unlim |
Uguu | uguu | 128 MB |
WeTransfer | wetransfer | 2 GB |
workupload | workupload | 2 GB |
zippyshare | zippyshare | 500 MB |
Host arguments are case insensitive.
If you would like to use go-upload with your software, you can use the -j
arg to have it write a jobs JSON to a specified path.
It will only panic and return an exit code 1 if:
- Setup fails (arg parsing, output text or job file setup).
- A job fails to write.
Example output:
{
"jobs": [
{
"url": "https://anonfiles.com/La53h1l3ye/1_gif",
"host": "anonfiles",
"filename": "1.gif",
"file_path": "G:\\go\\ul_5\\1.gif",
"ok": true,
"error_text": ""
},
{
"url": "https://we.tl/t-tNBYrFyQhH",
"host": "wetransfer",
"filename": "1.gif",
"file_path": "G:\\go\\ul_5\\1.gif",
"ok": true,
"error_text": ""
}
]
}
If a job file with the same path already exists, it will be wiped.