58 lines
1.6 KiB
Bash
58 lines
1.6 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# CONFIGURA QUI
|
|
SERVER="https://prova.patachina.it"
|
|
EMAIL="fabio@gmail.com"
|
|
PASS="master66"
|
|
ENTRY_ID="751d8a15766bf2686bc87e60b33b4a8c38befe454428e6a5a82b00f26026c0e0"
|
|
TTL=600
|
|
|
|
# FILE temporanei
|
|
OUT_FULL="/tmp/share_test_full.jpg"
|
|
OUT_PART="/tmp/share_test_part.bin"
|
|
RESP_JSON="/tmp/share_create_resp.json"
|
|
|
|
echo "1) Login..."
|
|
TOKEN=$(curl -s -X POST "$SERVER/auth/login" \
|
|
-H "Content-Type: application/json" \
|
|
-d "{\"email\":\"$EMAIL\",\"password\":\"$PASS\"}" | jq -r .token)
|
|
|
|
if [ -z "$TOKEN" ] || [ "$TOKEN" = "null" ]; then
|
|
echo "Login fallito. Controlla credenziali."
|
|
exit 1
|
|
fi
|
|
echo "JWT ottenuto."
|
|
|
|
echo "2) Creo share per entryId $ENTRY_ID (ttl=${TTL}s)..."
|
|
curl -s -X POST "$SERVER/share/create" \
|
|
-H "Authorization: Bearer $TOKEN" \
|
|
-H "Content-Type: application/json" \
|
|
-d "{\"entryId\":\"$ENTRY_ID\",\"ttlSeconds\":$TTL,\"oneTime\":false}" \
|
|
-o "$RESP_JSON"
|
|
|
|
cat "$RESP_JSON" | jq .
|
|
|
|
URL=$(jq -r .url < "$RESP_JSON")
|
|
EXPIRES_AT=$(jq -r .expiresAt < "$RESP_JSON")
|
|
|
|
if [ -z "$URL" ] || [ "$URL" = "null" ]; then
|
|
echo "Creazione share fallita. Output:"
|
|
cat "$RESP_JSON"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Share creato: $URL"
|
|
echo "Scadenza: $EXPIRES_AT"
|
|
|
|
echo "3) Scarico file completo (seguo redirect e TLS)..."
|
|
curl -v -L "$URL" -o "$OUT_FULL"
|
|
echo "Salvato in $OUT_FULL (size: $(stat -c%s "$OUT_FULL") bytes)"
|
|
|
|
echo "4) Test Range bytes=0-1023..."
|
|
curl -v -L -H "Range: bytes=0-1023" "$URL" -o "$OUT_PART"
|
|
echo "Salvato in $OUT_PART (size: $(stat -c%s "$OUT_PART") bytes)"
|
|
|
|
echo "5) Intestazioni HEAD (senza body)"
|
|
curl -I -L "$URL" || true
|
|
|
|
echo "Fatto. Controlla i file in /tmp e i log della tua app se necessario."
|