【问题标题】:How do I sync changes on AWS S3 (ultimately on AWS EFS) back into a Github repository?如何将 AWS S3(最终在 AWS EFS)上的更改同步回 Github 存储库?
【发布时间】:2021-01-16 20:55:15
【问题描述】:

我使用 Github Actions 将我的 git repo 的一个子文件夹(包括

如何将 S3(甚至更好 - EFS)存储桶与添加/更改/删除的文件同步回我在 Github 上的 git 存储库?

  • 我找不到任何可以提供此功能的 Github Actions
  • 当我使用 EC2 挂载我的 EFS 时,我想我可能会 git clone 并创建一个指向 EFS 的符号链接。然后我可以跳过 S3 侧步骤并调用 git pull/push。
  • 我想我可以构建一个 Lambda 来启动一个 EC2 实例,该实例会自动从 S3 中提取这些文件并将提交推送到我的 git 存储库。
  • 我可以尝试弄清楚如何使用 Lambda 和 /tmp 来制定提交

我一直无法思考实现这一目标的最佳方法。

你能把我推向正确的方向吗?

附:我对 git 不是很精通,这整个实现有点超出我的范围。 :-)

【问题讨论】:

    标签: git amazon-s3 aws-lambda github-actions amazon-efs


    【解决方案1】:

    @vonc,谢谢你的提示,它让我朝着正确的方向前进。

    我最终这样做了,这解决了我的最终目标,即通过 GIT 管理 EFS。我可以完全跳过 S3 / Lambda。

    第一步:sudo mount -t efs -o tls MYFILESYSTEMID:/ efs

    第二步:cd efs

    第三步:git clone --depth 1 --no-checkout --filter=blob:none git@github.com:user/repo

    第四步:cd repo

    第 5 步:git sparse-checkout set subdirectory

    第 6 步:git read-tree -mu HEAD

    从这里开始,我可以在这个特定的子目录中推送/拉取更改。

    【讨论】:

      【解决方案2】:

      如果您可以在挂载 AWS EFS 后将 Git 存储库克隆到同一 EC2 实例上,则可以:

      cd /path/to/cloned/git/repository
      git --work-tree=/path/to/mounted/EFS add .
      

      这将检测 EFS 中添加/修改/删除的更改,并将这些更改导入到克隆的 Git 存储库。
      从那里,您可以提交和推送。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-26
        • 2021-05-12
        • 1970-01-01
        相关资源
        最近更新 更多