这个 GitHub Action 用于将 Cloudflare R2、Backblaze B2 存储中的文件迁移到 GitHub 仓库,支持根据策略选择文件的迁移目标仓库。支持按照文件大小或文件数量的策略进行选择,支持迁移后删除 R2 和 B2 中的文件。
- 从 Cloudflare R2、Backblaze B2 存储中获取文件列表。
- 从 Cloudflare Worker 中获取所有的账户信息。
- 根据选择的策略将文件迁移到指定的 GitHub 仓库。
- 支持三种策略:根据仓库文件数量最少、仓库容量最小和指定目标仓库。
- 支持迁移后,可以选择保留或者删除 R2、B2 中的文件。
- B2 桶有版本控制,彻底删除已标记的所有文件。
通过 Cloudflare API,获取对应 worker 里的账户配置
在 Cloudflare 面板创建可以读取 Worker 项目的 API, https://dash.cloudflare.com/profile/api-tokens
name: S3 --> GitHub
on:
schedule:
- cron: '0 * * * *' # 每小时运行一次
workflow_dispatch: # 允许手动触发
jobs:
S3:
runs-on: ubuntu-latest
env:
ACCOUNT_ID: ${{ secrets.ACCOUNT_ID }}
WORKER_NAME: ${{ secrets.WORKER_NAME }}
API_TOKEN: ${{ secrets.API_TOKEN }}
steps:
- name: Checkout code
uses: actions/[email protected]
- name: Sync files to GitHub
uses: fscarmen3/[email protected]