@@ -240,76 +240,38 @@ jobs:
240240 path : artifacts/*
241241 if-no-files-found : error
242242
243- # Upload to Aliyun OSS
244- - name : Upload to Aliyun OSS
243+ # Upload to Cloudflare R2
244+ - name : Upload to Cloudflare R2
245245 if : needs.build-check.outputs.is_release == 'true'
246246 env :
247- OSS_ACCESS_KEY_ID : ${{ secrets.ALICLOUDOSS_KEY_ID }}
248- OSS_ACCESS_KEY_SECRET : ${{ secrets.ALICLOUDOSS_KEY_SECRET }}
249- OSS_REGION : cn-beijing
250- OSS_ENDPOINT : https://oss-cn-beijing.aliyuncs.com
247+ R2_ACCESS_KEY_ID : ${{ secrets.R2_ACCESS_KEY_ID }}
248+ R2_SECRET_ACCESS_KEY : ${{ secrets.R2_SECRET_ACCESS_KEY }}
249+ R2_ENDPOINT : ${{ secrets.R2_ENDPOINT }}
250+ R2_BUCKET : ${{ secrets.R2_BUCKET }}
251251 shell : bash
252252 run : |
253- if [[ -z "$OSS_ACCESS_KEY_ID " ]]; then
254- echo "⚠️ OSS credentials not available , skipping OSS upload"
253+ if [[ -z "$R2_ACCESS_KEY_ID" || -z "$R2_SECRET_ACCESS_KEY" || -z "$R2_ENDPOINT" || -z "$R2_BUCKET " ]]; then
254+ echo "⚠️ R2 credentials or endpoint missing , skipping artifact upload"
255255 exit 0
256256 fi
257257
258- # Install ossutil
259- OSSUTIL_VERSION="2.1.1"
260- case "${{ matrix.os_name }}" in
261- macos)
262- if [[ "$(uname -m)" == "arm64" ]]; then
263- ARCH="arm64"
264- else
265- ARCH="amd64"
266- fi
267- OSSUTIL_ZIP="ossutil-${OSSUTIL_VERSION}-mac-${ARCH}.zip"
268- OSSUTIL_DIR="ossutil-${OSSUTIL_VERSION}-mac-${ARCH}"
269-
270- curl -sL -o "$OSSUTIL_ZIP" "https://gosspublic.alicdn.com/ossutil/v2/${OSSUTIL_VERSION}/${OSSUTIL_ZIP}"
271- unzip -q "$OSSUTIL_ZIP"
272- mv "${OSSUTIL_DIR}/ossutil" /usr/local/bin/
273- rm -rf "$OSSUTIL_DIR" "$OSSUTIL_ZIP"
274- chmod +x /usr/local/bin/ossutil
275- OSSUTIL_BIN=ossutil
276- ;;
277- linux)
278- OSSUTIL_ZIP="ossutil-${OSSUTIL_VERSION}-linux-amd64.zip"
279- OSSUTIL_DIR="ossutil-${OSSUTIL_VERSION}-linux-amd64"
280-
281- curl -sL -o "$OSSUTIL_ZIP" "https://gosspublic.alicdn.com/ossutil/v2/${OSSUTIL_VERSION}/${OSSUTIL_ZIP}"
282- unzip -q "$OSSUTIL_ZIP"
283- mv "${OSSUTIL_DIR}/ossutil" ./ossutil
284- rm -rf "$OSSUTIL_DIR" "$OSSUTIL_ZIP"
285- chmod +x ./ossutil
286- OSSUTIL_BIN=./ossutil
287- ;;
288- windows)
289- OSSUTIL_ZIP="ossutil-${OSSUTIL_VERSION}-windows-amd64.zip"
290- OSSUTIL_DIR="ossutil-${OSSUTIL_VERSION}-windows-amd64"
291-
292- curl -sL -o "$OSSUTIL_ZIP" "https://gosspublic.alicdn.com/ossutil/v2/${OSSUTIL_VERSION}/${OSSUTIL_ZIP}"
293- unzip -q "$OSSUTIL_ZIP"
294- mv "${OSSUTIL_DIR}/ossutil.exe" ./ossutil.exe
295- rm -rf "$OSSUTIL_DIR" "$OSSUTIL_ZIP"
296- OSSUTIL_BIN=./ossutil.exe
297- ;;
298- esac
299-
300- OSS_PATH="oss://rustfs-artifacts/artifacts/rustfs-cli/release/"
301-
302- # Upload all artifacts to OSS
303- echo "📤 Uploading artifacts to $OSS_PATH..."
258+ export AWS_ACCESS_KEY_ID="$R2_ACCESS_KEY_ID"
259+ export AWS_SECRET_ACCESS_KEY="$R2_SECRET_ACCESS_KEY"
260+ export AWS_DEFAULT_REGION="auto"
261+
262+ R2_PATH="s3://${R2_BUCKET}/artifacts/rustfs-cli/release/"
263+
264+ # Upload all artifacts to R2
265+ echo "📤 Uploading artifacts to $R2_PATH..."
304266 for file in artifacts/*; do
305267 if [[ -f "$file" ]]; then
306268 echo "Uploading: $file"
307- $OSSUTIL_BIN cp "$file" "$OSS_PATH " --force
269+ aws s3 cp "$file" "$R2_PATH " --endpoint-url "$R2_ENDPOINT" --only-show-errors
308270 echo "✅ Uploaded: $(basename "$file")"
309271 fi
310272 done
311273
312- echo "✅ OSS upload completed successfully"
274+ echo "✅ R2 upload completed successfully"
313275
314276 # Generate shell completions
315277 completions :
@@ -404,42 +366,36 @@ jobs:
404366 echo "📦 Release assets:"
405367 ls -la
406368
407- - name : Upload release assets to Aliyun OSS
369+ - name : Upload release assets to Cloudflare R2
408370 env :
409- OSS_ACCESS_KEY_ID : ${{ secrets.ALICLOUDOSS_KEY_ID }}
410- OSS_ACCESS_KEY_SECRET : ${{ secrets.ALICLOUDOSS_KEY_SECRET }}
411- OSS_REGION : cn-beijing
412- OSS_ENDPOINT : https://oss-cn-beijing.aliyuncs.com
371+ R2_ACCESS_KEY_ID : ${{ secrets.R2_ACCESS_KEY_ID }}
372+ R2_SECRET_ACCESS_KEY : ${{ secrets.R2_SECRET_ACCESS_KEY }}
373+ R2_ENDPOINT : ${{ secrets.R2_ENDPOINT }}
374+ R2_BUCKET : ${{ secrets.R2_BUCKET }}
413375 RELEASE_VERSION : ${{ needs.build-check.outputs.version }}
414376 shell : bash
415377 run : |
416- if [[ -z "$OSS_ACCESS_KEY_ID " ]]; then
417- echo "⚠️ OSS credentials not available , skipping release asset OSS upload"
378+ if [[ -z "$R2_ACCESS_KEY_ID" || -z "$R2_SECRET_ACCESS_KEY" || -z "$R2_ENDPOINT" || -z "$R2_BUCKET " ]]; then
379+ echo "⚠️ R2 credentials or endpoint missing , skipping release asset upload"
418380 exit 0
419381 fi
420382
421- OSSUTIL_VERSION="2.1.1"
422- OSSUTIL_ZIP="ossutil-${OSSUTIL_VERSION}-linux-amd64.zip"
423- OSSUTIL_DIR="ossutil-${OSSUTIL_VERSION}-linux-amd64"
424-
425- curl -sL -o "$OSSUTIL_ZIP" "https://gosspublic.alicdn.com/ossutil/v2/${OSSUTIL_VERSION}/${OSSUTIL_ZIP}"
426- unzip -q "$OSSUTIL_ZIP"
427- mv "${OSSUTIL_DIR}/ossutil" ./ossutil
428- rm -rf "$OSSUTIL_DIR" "$OSSUTIL_ZIP"
429- chmod +x ./ossutil
383+ export AWS_ACCESS_KEY_ID="$R2_ACCESS_KEY_ID"
384+ export AWS_SECRET_ACCESS_KEY="$R2_SECRET_ACCESS_KEY"
385+ export AWS_DEFAULT_REGION="auto"
430386
431- OSS_PATH="oss ://rustfs-artifacts /artifacts/rustfs-cli/release/${RELEASE_VERSION}/"
387+ R2_PATH="s3 ://${R2_BUCKET} /artifacts/rustfs-cli/release/${RELEASE_VERSION}/"
432388
433- echo "📤 Uploading release assets to $OSS_PATH ..."
389+ echo "📤 Uploading release assets to $R2_PATH ..."
434390 for file in release-assets/*; do
435391 if [[ -f "$file" ]]; then
436392 echo "Uploading: $file"
437- ./ossutil cp "$file" "$OSS_PATH " --force
393+ aws s3 cp "$file" "$R2_PATH " --endpoint-url "$R2_ENDPOINT" --only-show-errors
438394 echo "✅ Uploaded: $(basename "$file")"
439395 fi
440396 done
441397
442- echo "✅ Release asset OSS upload completed successfully"
398+ echo "✅ Release asset R2 upload completed successfully"
443399
444400 - name : Upload to GitHub Release (release event)
445401 if : github.event_name == 'release'
0 commit comments