diff options
Diffstat (limited to 'bash-upload.sh')
| -rwxr-xr-x[-rw-r--r--] | bash-upload.sh | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/bash-upload.sh b/bash-upload.sh index ae7e3ef..527aad2 100644..100755 --- a/bash-upload.sh +++ b/bash-upload.sh @@ -1,20 +1,27 @@ -# Generated by Claude - #!/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}" -WORKDIR=$(mktemp -d) - -for size in thumb:200 medium:800 large:1600; do - name="${size%%:*}"; px="${size##*:}" - magick "$SRC" -resize "${px}x${px}>" "$WORKDIR/${HASH}-${name}.jpg" -done -cp "$SRC" "$WORKDIR/${HASH}-original.jpg" +REMOTE_DIR="$BASE/$SUBDIR/$SHARD" -ssh cdn.bsimg.com "mkdir -p /var/www/bsimg/media/$SHARD" -rsync -avz "$WORKDIR"/* "cdn.bsimg.com:/var/www/bsimg/media/$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://bsimg.com/media/${SHARD}/${HASH}"
\ No newline at end of file +echo "https://pbs.bsimg.net/${SUBDIR}/${SHARD}/${HASH}"
\ No newline at end of file |
