github图床 私库 gitLab备份
Token
cloudflare 新建workers
addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
  const url = new URL(request.url)
  const path = url.pathname
  
  // 定义环境变量 GITHUB_USERNAME 和 GITHUB_PAT
  const GITHUB_USERNAME = 'zbb07' // 替换为你的 GitHub 用户名
  const GITHUB_PAT = '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' // 替换为你的 GitHub PAT,只开放 repo 权限即可
  
  // 构建 GitHub raw 内容的 URL
  const githubUrl = `https://raw.githubusercontent.com/${GITHUB_USERNAME}${path}`
  
  // 创建新的请求,添加必要的头部
  const modifiedRequest = new Request(githubUrl, {
    method: request.method,
    headers: {
      ...request.headers,
      'Authorization': `token ${GITHUB_PAT}`,
      'Accept': 'application/vnd.github.v3.raw'
    }
  })
  
  // 发送请求并返回响应
  try {
    const response = await fetch(modifiedRequest)
    
    // 如果响应不成功,抛出错误
    if (!response.ok) {
      throw new Error(`GitHub API responded with ${response.status}: ${response.statusText}`)
    }
    
    // 创建新的响应,保留原始内容但移除敏感头部
    const newResponse = new Response(response.body, response)
    newResponse.headers.delete('Authorization')
    
    return newResponse
  } catch (error) {
    return new Response(`Error: ${error.message}`, { status: 500 })
  }
}
测试 显示 # img1
https://img1.kev071225.workers.dev/img1/main/README.md
设置自定义域名 tt.n06.dpdns.org
设置PicGo
插件设置 安装compress-next 1.5.2
tinypng 申请 Token
6RLd8v72LsrYHn3TpsZQ0Hjx00TFBbyk
PicGo设置
图床设置 GitHub
图床配置名  sikuimg1
设定仓库名  zcr07/img1
设定分支名  main
设定Token   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
设定存储路径 siku/
设定自定义域名 https://tt.zb9.dpdns.org/img1/main
上传一张图片测试
github中已经上传成功
https://github.com/zbb07/img1/tree/main/img11
备份到gitLab
只需要命名 img11 和github上一样就行了
glpat-bRVj5zf6DyKpc4gJXRU_
回到Github
https://github.com/zbb07/img1/settings/secrets/actions
GITLAB_USERNAME	Gitlab 用户名                  zcr071225
GITLAB_REPO	Gitlab 上创建的项目名          img11
GITLAB_PAT	上面生成的 Gitlab 项目的 PAT   glpat-bRVj5zf6DyKpc4gJXRU_
新增文件
.github/workflows/sync-to-gitlab.yml
name: Sync to GitLab
on:
  push:
    branches:
      - main
  workflow_dispatch:
jobs:
  sync:
    runs-on: ubuntu-latest
    env:
      GITLAB_USERNAME: ${{ secrets.GITLAB_USERNAME }}
      GITLAB_REPO: ${{ secrets.GITLAB_REPO }}
      GITLAB_PAT: ${{ secrets.GITLAB_PAT }}
    steps:
    - name: Checkout repository
      uses: actions/[email protected]
      with:
        fetch-depth: 0
    - name: Set up Git
      run: |
        git config --global user.name 'github-actions'
        git config --global user.email '[email protected]'
    - name: Add GitLab remote
      run: git remote add gitlab https://${{ env.GITLAB_USERNAME }}:${{ env.GITLAB_PAT }}@gitlab.com/${{ env.GITLAB_USERNAME }}/${{ env.GITLAB_REPO }}.git
    - name: Force push to GitLab
      run: git push gitlab main --force
同步已成功 查看gitLab
已成功备份到了gitLab上了。
转载请注明出处































