Some checks failed
AI Code Review / ai-review (pull_request) Failing after 2s
24 lines
847 B
Bash
24 lines
847 B
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
# AWS S3 backup upload (native AWS CLI)
|
|
# Uses: aws cli v2
|
|
# Env: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_DEFAULT_REGION, S3_BUCKET
|
|
|
|
BACKUP_FILE="${1:?Usage: $0 <backup-file>}"
|
|
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
|
|
KEY="gitea-dump-${TIMESTAMP}.zip"
|
|
|
|
echo "Uploading ${KEY}..."
|
|
aws s3 cp "$BACKUP_FILE" "s3://${S3_BUCKET}/${KEY}"
|
|
echo "Upload complete."
|
|
|
|
# Prune backups older than 7 days
|
|
echo "Pruning backups older than 7 days..."
|
|
CUTOFF=$(date -d '7 days ago' +%Y-%m-%dT%H:%M:%S 2>/dev/null || date -v-7d +%Y-%m-%dT%H:%M:%S)
|
|
aws s3api list-objects-v2 --bucket "${S3_BUCKET}" --query "Contents[?LastModified<'${CUTOFF}'].Key" --output text \
|
|
| tr '\t' '\n' \
|
|
| while read -r key; do
|
|
[ -n "$key" ] && aws s3 rm "s3://${S3_BUCKET}/${key}" && echo "Deleted: ${key}"
|
|
done
|
|
echo "Pruning complete."
|