MaaAssistantArknights / MaaRelease

管理 MAA 各更新版本、MAA Version API、部分镜像脚本等内容,仅供内部使用
https://ota.maa.plus
GNU Affero General Public License v3.0
65 stars 21 forks source link

R2 仅传输被修改的文件 #145

Closed zzyyyl closed 1 month ago

zzyyyl commented 1 month ago

issue 正文:

现在执行一次 update-resource 会进行 5k Class A 是因为每次都传输了完整的 resource(其中2k+是基本不会动的地图文件),只传输修改的文件是否可行? MAA 主仓库中 v5.4.0-02961e60(Jul 7 - Jul 14)resource 有变化的仅 99 个文件 5k -> 99 降低至少 98% Class A Operations

参考 action: https://github.com/MaaAssistantArknights/MaaRelease/actions/runs/9922951662/job/27412577841

参考文件: https://github.com/MaaAssistantArknights/MaaRelease/blob/49b8c54d78bbb1c0e7a25d18db4b3bc22b213620/.github/workflows/update-resource.yml#L33-L57 https://github.com/MaaAssistantArknights/MaaRelease/blob/49b8c54d78bbb1c0e7a25d18db4b3bc22b213620/scripts/update_resource/updateResource.sh#L1-L15 https://github.com/MaaAssistantArknights/MaaRelease/blob/49b8c54d78bbb1c0e7a25d18db4b3bc22b213620/scripts/update_resource/list.py#L1-L28

cc @ABA2396 @ChingCdesu @AlisaAkiron @GalvinGao

ChingCdesu commented 1 month ago

我没太看懂,要不弄个pr?

zzyyyl commented 1 month ago

我没太看懂,要不弄个pr?

具体的逻辑应该在 .github/s3Sync 里?

我的意思是现在是把整个 resource 文件夹全传上去了,其实应该只需要更新少数几个文件

ChingCdesu commented 1 month ago

主要是aws s3 sync这个命令的问题,它也会对文件更改做检查,但按照它的逻辑,每个文件都会被它标记为需要更新

所以其实如果你要整,那就得自己实现并优化这个命令的整个流程

zzyyyl commented 1 month ago

我本地用的是 git diff v5.4.0...HEAD --name-only | findstr resource

把 v5.4.0 换成 git describe --abbrev=0,我觉得够用了.jpg

AnnAngela commented 1 month ago

aws s3 sync 加个 --size-only

zzyyyl commented 1 month ago

aws s3 cp 一个个复制(

只需要对 git diff ${{ git describe --abbrev=0 }}...HEAD --name-only | grep resource 的结果和 dynamic_list.txt 取个交集,里面的文件就是需要的了吧

再准确一点的话可以多同步一个 commit_hash 信息,这样上面的 git diff 就可以换成 git diff ${{ 上次同步hash }}...HEAD --name-only | grep resource

注: 上述 git 是在 MaaAssistantArknights/MaaAssistantArknights 仓库,或许 GitHub 提供什么类似的接口直接获取 diff 文件列表


或许 GitHub 提供什么类似的接口直接获取 diff 文件列表

好像还真有一个 compare-two-commits

ChingCdesu commented 1 month ago

R2 had been disabled.

SherkeyXD commented 1 month ago

虽然 r2 关了,但是资源更新的重构还是有意义吧( 要不改个标题然后 reopen(