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é il y a 3 min, recalculé toutes les heures et après chaque envoi.

    fichiers
    1 179
    espace occupé
    23,2 Go
    plus gros fichier
    1,6 Go (.psd)
    $ du -h uploads/ --par-type
    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
    }