GitHub Action 转存 Onedrive Google Drive 6盘

GithubAction新建workflow

感谢 jiegto 提供的flow

可以在这里获取

为了方便小白如我

直接上图

newflow

myown

config

其中填入如下内容,注意改一下 gclone copy 那里, gclone copy命令 根据情况自己改

name: OD 2 TD

on:
  push:
  schedule:
  # 定时任务,每7小时运行一次 
    - cron: '0 */7 * * *'

jobs:
  build:
    runs-on: ubuntu-latest
    if: github.event.repository.owner.id == github.event.sender.id
    env:
      GCLONE_CONFIG: ${{ secrets.GCLONE_CONFIG }}
      GCLONE_SA_DLURL: ${{ secrets.GCLONE_SA_DLURL }}
    steps:
      - name: Checkout
        uses: actions/[email protected]
       
      - name: gclone install
        run: |
          # 安装 gclone
          wget -qO- https://api.github.com/repos/donwa/gclone/releases/latest \
          | grep browser_download_url | grep Linux_x86_64 | cut -d '"' -f 4 \
          | wget --no-verbose -i- -O- | gzip -d -c > gclone
          sudo mv gclone /usr/bin
          sudo chmod +x /usr/bin/gclone 
      - name: set accounts
        run: |
          # 配置 accounts 文件
          cd ~
          wget -O sa.zip "$GCLONE_SA_DLURL"
          unzip sa.zip
      - name: gclone config
        run: |
          # 写配置文件
          mkdir -p ~/.config/rclone/
          cat >  ~/.config/rclone/rclone.conf  << EOF
          $GCLONE_CONFIG
          EOF
      - name: gclone run
        run: |
          # 延迟函数
          delay()
          {
          random_time=$(($RANDOM % $1))
          echo "等待 ${random_time} 分钟后开始同步"
          for((i=1;i<=${random_time};i++)); 
          do
          echo "倒计时 $[${random_time}-$i] 分钟"
          sleep 1m
          done
          }
          # 随机延迟0~15分钟后再进行操作,可自行设置时间
          delay 1
          # 更改时区
          sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
          # 开始同步
          #gclone copy 6:dxz/tmp gc:{1fYHQxRIooVv85EEvLh_okBSmAVNdnooZ} --drive-server-side-across-configs -vvP --transfers 6 --drive-pacer-min-sleep=1s  --cache-chunk-size 20M  
          #echo "6已同步至gc"
          gclone copy  gc:{1zcgxEktok7MWJ9SpTQtt4KTGHMccNQd5}  dxz00asian01:asian --drive-server-side-across-configs --ignore-existing  --transfers=4    -vvP
          echo "OD已同步至TD" 

再来 Setttings-> secrets 添加几个参数

主要是这两个

GCLONE_CONFIG Gclone 配置

GCLONE_SA_DLURL service_account 文件下载地址

那个GCLONE_PATCH 同步目录我没搞懂

等大佬有时间,请教一下

参考这里

secret

Gcloneconfig

这里面 的 [gc] 可以写一堆,直接从rclone.config 文件复制即可,和上面的gclone copy命令对应,注意sa文件的路径,根据情况自己改

这个 GCLONE_SA_DLURL 就直接把sa的文件夹放到能下载的地方即可,比如dropbox,然后做一个分享,保证 vps 里面能wget到就行

vps已经配置好rclone的话,打包sa

zip sa.zip /root/.config/rclone -r

一定注意保密sa!

因为如果得到rclone 配置和sa文件的话,所有sa有权限的文件都可以看到 !!!

运行

点击 commit以后 就开始了

commit

然后到action里面 可以点击项目 看运行情况

action

可以看到,速度尚可

run

6盘限速了,大概能跑20M的样子

OD也限速了,不过OD分地区,有的能跑35M左右,我这个新加坡的不行,10M 多

cron

可以看到,cron起作用了,运行了一小时 OD转GD有20M+

最后强调一点

别滥用!!!

果然,惨遭封号!

活该

ban 用来搬运的话还是买个无限流量小鸡吧,这个Action可以用来定时同步网盘或者其他更有意义的事情

Git太难得,且用且珍惜吧


金牌大学渣
WRITTEN BY
金牌大学渣
Web Developer