【问题标题】:git upload changed static files to s3 and update code on pushgit 将更改的静态文件上传到 s3 并在推送时更新代码
【发布时间】:2013-06-12 18:11:25
【问题描述】:

我进行了大量的 Web 开发,我的所有静态文件(css、js、图像)都托管在 AWS S3 上。每当我推出更改时,我想将所有更改的静态文件自动上传到 s3(因此我不必手动执行此操作)。

另一个问题是,如果我以相同的名称上传它们,那么我可能会遇到缓存问题,例如用户有一个旧版本的 JS 文件但新的 CSS,这可能会导致冲突。

如果第一个可行,是否也可以更改这些文件的名称并使用新名称更新代码?显然,我希望此更改仅保留在服务器上,而我的笔记本电脑上的代码不会被重命名。

【问题讨论】:

    标签: git


    【解决方案1】:

    查看git hooks - 这将让您在每次推送后运行一个脚本,这样您就可以完全按照您的描述自动执行任务。

    虽然我相信 S3 使用 Etags 应该可以在一定程度上缓解这个问题,但要避免缓存问题是很棘手的。

    【讨论】:

    • 也许将文件放在基于提交ID的子目录中,那么每个提交都会有一个唯一的路径?
    • 我看到了这个,它工作得很好。启动和运行需要一点时间(自述文件不是很有帮助),但总的来说,这需要它。
    【解决方案2】:

    Set up a git repo on S3。将其设置为push-only。最后,将其设置为push to the S3 repository automatically。希望这会有所帮助,如果您还有其他问题,请离开 cmets。

    【讨论】:

    • 我不希望在 s3 上拥有我的整个 repo;我只想更新我的静态文件。因此,作为示例,我拥有所有代码并将其推送到服务器的存储库。假设我对 css 文件进行了一次更改。我只想将该css文件重新上传到s3。由于我的服务器上有一个远程仓库,我不希望我的整个仓库也在 s3 上......只是 css 更改。
    • 然后将其和push only that branch 分支到 S3。将其添加为module to your working copy
    猜你喜欢
    • 2018-06-18
    • 2017-06-26
    • 2015-03-14
    • 1970-01-01
    • 2019-09-18
    • 1970-01-01
    • 2017-02-25
    • 2016-11-22
    • 2021-03-21
    相关资源
    最近更新 更多