|
1 | 1 | #!/bin/bash |
2 | 2 |
|
3 | 3 | CDN_URL="flybywirecdn.com" |
4 | | -CDN_PURGE_LINK="https://flybywirecdn.com/purgeCache?url=http://flybywirecdn.com" |
5 | 4 | FILES=${1} |
6 | 5 | CDN_DIR=${2:-"installer/config/test"} |
7 | 6 |
|
|
17 | 16 |
|
18 | 17 | # Purge after all uploads that the files are somewhat in sync |
19 | 18 | echo "Purging cache" |
| 19 | + |
| 20 | +# Check if required environment variables are set |
| 21 | +if [ -z "$CLOUDFLARE_CDN_ZONE_ID" ]; then |
| 22 | + echo "Error: CLOUDFLARE_CDN_ZONE_ID environment variable is not set" |
| 23 | + exit 1 |
| 24 | +fi |
| 25 | + |
| 26 | +if [ -z "$CLOUDFLARE_PURGE_TOKEN" ]; then |
| 27 | + echo "Error: CLOUDFLARE_PURGE_TOKEN environment variable is not set" |
| 28 | + exit 1 |
| 29 | +fi |
| 30 | + |
| 31 | +# Build array of URLs to purge |
| 32 | +PURGE_URLS=() |
20 | 33 | for FILE in "${FILES}"/*; do |
21 | | - DEST="$CDN_PURGE_LINK/$CDN_DIR/$(basename -- "$FILE")" |
22 | | - echo "Purging cache for file: $FILE" |
23 | | - echo "Purge URL: $DEST" |
24 | | - curl -X POST -H "X-FBW-Access-Key: $CLOUDFLARE_BUCKET_PASSWORD" -H "Content-Length: 0" "$DEST" |
| 34 | + FILE_URL="https://$CDN_URL/$CDN_DIR/$(basename -- "$FILE")" |
| 35 | + PURGE_URLS+=("$FILE_URL") |
| 36 | + echo "Will purge: $FILE_URL" |
25 | 37 | done |
| 38 | + |
| 39 | +# Create JSON payload for Cloudflare API |
| 40 | +PURGE_JSON=$(printf '{"files":["%s"]}' "$(IFS='","'; echo "${PURGE_URLS[*]}")") |
| 41 | + |
| 42 | +echo "Purging cache via Cloudflare API" |
| 43 | +echo "JSON payload: $PURGE_JSON" |
| 44 | + |
| 45 | +# Call Cloudflare API to purge cache |
| 46 | +PURGE_RESPONSE=$(curl -s -X POST \ |
| 47 | + -H "Authorization: Bearer $CLOUDFLARE_PURGE_TOKEN" \ |
| 48 | + -H "Content-Type: application/json" \ |
| 49 | + -d "$PURGE_JSON" \ |
| 50 | + "https://api.cloudflare.com/client/v4/zones/$CLOUDFLARE_CDN_ZONE_ID/purge_cache") |
| 51 | + |
| 52 | +echo "Purge response: $PURGE_RESPONSE" |
| 53 | + |
| 54 | +# Check if purge was successful |
| 55 | +if echo "$PURGE_RESPONSE" | grep -q '"success":true'; then |
| 56 | + echo "Cache purge successful" |
| 57 | +else |
| 58 | + echo "Cache purge failed" |
| 59 | + echo "Response: $PURGE_RESPONSE" |
| 60 | + exit 1 |
| 61 | +fi |
0 commit comments