gilbert@upload.gilbertpaquin.ca:~$ ./upload --meow
disque 1,6 To libres sur 1,9 To
Drop ton fichier, pogne le lien.
$ glisse tes fichiers n'importe où sur la page, ou colle une image avec Ctrl+V > lâche-le, humain. =^.^=
# envoi par tranches de 50 Mo. si la connexion coupe, redépose le même fichier : l'envoi reprend où il s'était arrêté.
Le dossier
# calculé à l'instant, recalculé toutes les heures et après chaque envoi.
- fichiers
- 1 179
- espace occupé
- 23,2 Go
- plus gros fichier
- 1,6 Go (.psd)
| type | part | espace | fichiers |
|---|---|---|---|
| Vidéos .mp4, .mov, .mkv, .webm | 11,3 Go | 61 fichiers | |
| Archives .zip, .7z, .rar, .dmg | 6,0 Go | 177 fichiers | |
| Images .psd, .jpg, .png, .gif | 2,8 Go | 709 fichiers | |
| Autres .exe, .apk, .h5, .jar | 1,5 Go | 74 fichiers | |
| Code et données .sql, .log, .json, .yaml | 923,9 Mo | 54 fichiers | |
| Documents .pdf, .csv, .docx, .pptx | 425,4 Mo | 69 fichiers | |
| Audio .mp3, .flac, .m4a, .wav | 244,3 Mo | 35 fichiers |
Depuis le terminal
# le serveur répond avec le lien. en une seule requête, Cloudflare limite le fichier à 100 Mo.
curl
curl -T photo.jpg "https://upload.gilbertpaquin.ca/index.php?name=photo.jpg"
wget
wget -qO- --method=PUT --body-file=photo.jpg "https://upload.gilbertpaquin.ca/index.php?name=photo.jpg"
upgp, sans limite de taille
Colle cette fonction dans ~/.zshrc ou ~/.bashrc, ouvre un nouveau terminal, puis lance upgp fichier.zip (ou upgp *.jpg). Elle envoie le fichier par tranches de 50 Mo avec le protocole tus et affiche le lien. Requiert curl 7.84 ou plus récent.
upgp() {
local url='https://upload.gilbertpaquin.ca/tus.php' mb=50 f size loc link i n
[ $# -gt 0 ] || { echo 'usage: upgp <fichier>...' >&2; return 1; }
for f in "$@"; do
[ -s "$f" ] || { echo "upgp: $f: fichier introuvable ou vide" >&2; return 1; }
size=$(( $(wc -c < "$f") ))
loc=$(curl -fsS -X POST -H 'Tus-Resumable: 1.0.0' -H "Upload-Length: $size" \
-H "Upload-Metadata: filename $(printf %s "${f##*/}" | base64 | tr -d '\n')" \
-o /dev/null -w '%header{location}' "$url") || return 1
n=$(( (size + mb * 1048576 - 1) / (mb * 1048576) ))
for (( i = 0; i < n; i++ )); do
[ "$n" -gt 1 ] && echo "partie $(( i + 1 ))/$n" >&2
link=$(dd if="$f" bs=1048576 skip=$(( i * mb )) count=$mb 2>/dev/null |
curl -fS --progress-bar -X PATCH -H 'Tus-Resumable: 1.0.0' \
-H 'Content-Type: application/octet-stream' \
-H "Upload-Offset: $(( i * mb * 1048576 ))" --data-binary @- \
-o /dev/null -w '%header{x-download-url}' "$loc") || return 1
done
echo "$link"
done
}