summaryrefslogtreecommitdiff
path: root/bash-upload.sh
blob: 527aad20a47c5030862634f520d561e7937f3d73 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/usr/bin/env bash
# Generated by Claude
set -euo pipefail
umask 002

SRC="$1"
CATEGORY="${2:-media}"

HOST="pbs.bsimg.net"
BASE="/var/www/html"

case "$CATEGORY" in
    media)             SUBDIR="media" ;;
    profile-pictures)  SUBDIR="media/profile-pictures" ;;
    *) echo "Unknown category: $CATEGORY (expected 'media' or 'profile-pictures')" >&2; exit 1 ;;
esac

HASH=$(sha256sum "$SRC" | cut -c1-10)
EXT="${SRC##*.}"
SHARD="${HASH:0:2}/${HASH:2:2}"
REMOTE_DIR="$BASE/$SUBDIR/$SHARD"

ssh "$HOST" "mkdir -p $REMOTE_DIR"
scp "$SRC" "$HOST:$REMOTE_DIR/${HASH}-original.${EXT}"
ssh "$HOST" "/usr/local/bin/bsimg-process.sh '$REMOTE_DIR' '$HASH' '$EXT'"

echo "https://pbs.bsimg.net/${SUBDIR}/${SHARD}/${HASH}"