发布到S3使用Git?

有谁知道如何做到这一点? 到目前为止,我还无法通过Googlefind任何有用的信息。

我真的想设置一个本地repo,并使用git push其发布到S3,这个想法是通过本地版本控制资产,但S3上的远程存储。

可以这样做,如果是这样,怎么样?

1通过http://blog.spearce.org/2008/07/using-jgit-to-publish-on-amazon-s3.html 使用JGit

下载jgit.sh,将其重命名为jgit并将其放在path中(例如$ HOME / bin)。

设置.jgitconfiguration文件并添加以下内容(replace您的AWS密钥):

$ vim〜/ .jgit

 accesskey: aws access key secretkey: aws secret access key 

注意,通过在.jgit文件中不指定acl:public,S3上的git文件将是私有的(这是我们想要的)。 接下来创build一个S3存储区来存储你的存储库,我们称之为git-repos,然后创build一个git存储库来上传:

 s3cmd mb s3://git-repos mkdir chef-recipes cd chef-recipes git init touch README git add README git commit README git remote add origin amazon-s3://.jgit@git-repos/chef-recipes.git 

在上面,我使用s3cmd命令行工具来创build存储桶,但是您也可以通过Amazon Web界面来完成。 现在让我们把它推到S3(注意,我们如何使用jgit与S3交互,否则使用标准git):

 jgit push origin master 

现在去别的地方(例如cd / tmp),然后尝试克隆它:

 jgit clone amazon-s3://.jgit@git-repos/chef-recipes.git 

当需要更新它时(因为jgit不支持合并或者拉),你需要分两步进行:

 cd chef-recipes jgit fetch git merge origin/master 

2 使用Amazon S3支持的基于FUSE的文件系统

  1. 获取Amazon S3帐户!

  2. 下载,编译和安装。 (请参阅安装说明)

  3. 通过以下方法之一指定您的安全证书(访问密钥ID和秘密访问密钥):

    • 使用passwd_file命令行选项

    • 设置AWSACCESSKEYID和AWSSECRETACCESSKEY环境variables

    • 在主目录中使用.passwd-s3fs文件

    • 使用系统范围的/ etc / passwd-s3fs文件

    • 做这个

 /usr/bin/s3fs mybucket /mnt 

而已! 你的亚马逊桶“mybucket”的内容现在应该可以在/ mnt中读/写

Dandelion是另一种CLI工具,可以让Git仓库与S3 / FTP / SFTP保持同步: http : //github.com/scttnlsn/dandelion

git-s3https://github.com/schickling/git-s3

你只需要运行git-s3 deploy

它带有所有的git仓库和uploades的好处/只删除你已经改变的文件。
注意:部署不是通过git push隐含的,但是可以通过git钩子实现。

您可以使用mc aka Minio客户端 ,它是用Golang编写的,并且可以在开源Apache许可证下获得。 它适用于Mac,Linux,Windows,FreeBsd。 您可以使用mc mirror命令来实现您的要求。

mc GNU / Linux下载

 64-bit Intel from https://dl.minio.io/client/mc/release/linux-amd64/mc 32-bit Intel from https://dl.minio.io/client/mc/release/linux-386/mc 32-bit ARM from https://dl.minio.io/client/mc/release/linux-arm/mc $ chmod +x mc $ ./mc --help 

为Amazon S3configurationmc

 $ mc config host add mys3 https://s3.amazonaws.com BKIKJAA5BMMU2RHO6IBB V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12 
  • replace您的访问/密钥
  • 默认情况下,mc使用亚马逊S3的签名版本4。
  • mys3是minio客户端的Amazon S3别名

镜像你的github本地仓库/目录说名称mygithub到亚马逊S3桶名称mygithubbkp

 $ ./mc mirror mygithub mys3/mygithubbkp 

希望它有助于免责声明:我为Minio工作

您可以使用deplybot( http://deploybot.com/ )服务,这是免费的单个git存储库。

您可以通过在部署模式部分select“自动”来自动执行部署。

我现在正在使用它。 这是非常容易和有用的。

版本控制你的文件与Github? 这个脚本(及其相关的GitHub / AWSconfiguration)将对您的仓库进行新的提交并将其同步到您的S3存储桶中。

https://github.com/nytlabs/github-s3-deploy