【问题标题】:Git Push to Amazon S3 for Deploying Assets?Git 推送到 Amazon S3 以部署资产?
【发布时间】:2011-03-03 22:37:56
【问题描述】:

你能在亚马逊上安装 git 并轻松推送资产(js、css、img)吗?像 Heroku 但有资产和 S3 的东西会很棒。

有些人似乎使用 JungleDisk 将本地 git 目录同步到 s3,但这太笨重了。我尝试在 Mac 上安装 jgit 但无济于事,而且那东西看起来很古老。还有什么其他的吗,或者这种类型的东西不起作用?

我已经尝试了大多数用于 heroku 资产部署/优化的 gem,但它们都需要您将它们托管在 heroku 上,或者运行 rake 任务,这并不理想。

【问题讨论】:

    标签: ruby-on-rails git deployment amazon-s3


    【解决方案1】:

    您可以使用s3cmd --sync LOCAL s3://BUCKET/PREFIX 来完成此操作。最好每个资产的名称中都有一个版本号。否则您可能会遇到奇怪的问题,例如浏览器缓存第 1 版 CSS 和使用第 2 版 JavaScript,从而导致未定义的行为。

    【讨论】:

    • 只会同步更改,所以如果我有 100 张图片并且我在本地更改了 1 张,它只会上传那 1 张,就像 git 一样。还是重新上传所有内容?
    • 通常 Git 将数据存储在loose object format 中,这意味着每个文件的每个版本都存储在自己的文件中。如果你在一个 100 兆字节的文件中更改一个字节,git 将写入 100 兆字节的一个字节更改。如果您使用“s3cmd sync”,100 兆字节将被发送到亚马逊。如果您告诉 git 使用打包对象格式,则上述仅同步差异的声明是正确的,这不是默认值。
    • 编辑:现在只是 s3cmd sync ./ s3://Your-bucket,没有 -- 同步标志
    【解决方案2】:

    如何设置 EC2 映像,在其中安装 s3 映像并设置一个裸 git 存储库以推送到所述 S3 映像?

    【讨论】:

      【解决方案3】:

      其他答案推荐的工具已过时。

      这是最新的:https://github.com/schickling/git-s3

      【讨论】:

        【解决方案4】:

        查看 Jammit s3,这是一个很棒的解决方案(zip + 云):

        https://github.com/railsjedi/jammit-s3

        【讨论】:

        • 唯一的问题是它每次都会推动一切。因此,如果您有很多图像,则需要一段时间。如果它能够以某种方式找出差异,我就在:)
        【解决方案5】:

        Jammit s3 的问题是您无法正确管理文件的版本。最终用户可能需要一段时间才能获得最新的 JS/CSS 文件。

        如果您将 PHP 用于您的应用程序,您可能会发现这很有用(否则此代码可以适应您的需要):https://github.com/SupersonicAds/git-hook-php-s3-files-revisions

        【讨论】:

          【解决方案6】:

          Jammit S3 没有我想要的控件,所以我编写了自己的 CLI 脚本:

          https://github.com/bradt/git-deploy-s3

          【讨论】:

            猜你喜欢
            • 2011-06-29
            • 1970-01-01
            • 1970-01-01
            • 2012-01-11
            • 2015-09-10
            • 1970-01-01
            • 2012-04-07
            • 1970-01-01
            • 2014-10-07
            相关资源
            最近更新 更多