Ruby on rails Git推动AmazonS3部署资产?

Ruby on rails Git推动AmazonS3部署资产?,ruby-on-rails,git,deployment,amazon-s3,Ruby On Rails,Git,Deployment,Amazon S3,你能在Amazon上安装git并轻松推送资产(js、css、img)吗?类似于Heroku的东西,但是有了资产和S3就太棒了 有些人似乎使用JungleDisk将本地git目录同步到s3,但这太庞大了。我试着在mac电脑上安装,但没有用,而且那个东西看起来很古老。还有其他的事情吗?或者这类事情根本不起作用 我已经尝试了heroku资产部署/优化的大多数gem,但它们都要求您在heroku上托管它们,或者运行rake任务,这并不理想。您可以使用来完成这一点。最好每个资产的名称中都有一个版本号。否则

你能在Amazon上安装git并轻松推送资产(js、css、img)吗?类似于Heroku的东西,但是有了资产和S3就太棒了

有些人似乎使用JungleDisk将本地git目录同步到s3,但这太庞大了。我试着在mac电脑上安装,但没有用,而且那个东西看起来很古老。还有其他的事情吗?或者这类事情根本不起作用


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

您可以使用来完成这一点。最好每个资产的名称中都有一个版本号。否则,您可能会遇到奇怪的问题,例如浏览器缓存CSS版本1和使用JavaScript版本2,从而导致未定义的行为。

请参阅Jammit s3,这是一个很好的解决方案(zip+云):


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


如果您在应用程序中使用PHP,您可能会发现这很有用(否则,此代码可以根据您的需要进行调整):

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


设置一个EC2映像,将s3映像挂载在上面,然后设置一个裸git存储库,以便在所述s3映像上推送到它,怎么样?

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


这一个是最新的:

这将只同步更改,所以如果我有100个图像,并且我在本地更改了1个,它将只上传1个,就像git一样。或者它会再次上传所有内容吗?通常Git将数据存储在中,这意味着每个文件的每个版本都存储在自己的文件中。如果在一个100兆字节的文件中更改一个字节,git将为一个字节的更改写入100兆字节。如果你使用“s3cmd同步”,100兆字节将被发送到亚马逊。如果您告诉git使用压缩对象格式(这不是默认格式),那么上面只同步差异的说法才是正确的。编辑:这现在只是
s3cmd sync./s3://Your bucket
,同步上没有--flag唯一的问题是它每次都推送所有内容。因此,如果你有很多图像,这需要一段时间。如果它能以某种方式找出差异,我就在其中:)