2KB项目,专业的源码交易网站 帮助 收藏 每日签到

如何使用 S3 做为私有 Git 仓库

  • 时间:2019-01-23 18:34 编辑:2KB 来源:2KB.COM 阅读:335
  • 扫一扫,手机访问
  • 分享
摘要:
Git JGit 英文原文:How to Use S3 as a Private Git Repository

通常那些网站上的文件内容都是存储在一个git仓库里的.(对于非从事软件行业的人来说,可以把"git"理解为是一个可以让你以逻辑方式保存文件的所有历史变化内容的,用于版本控制的系统).当我要使用时,我需要把它放到我本地电脑上(而用额外的硬盘来做备份).

但是,假如我没有个人电脑但是又需要编辑或创建的话呢?显然,我需要从服务器上("云上")拷贝源文件.本篇内容简单描述关于我是怎么考虑在S3使用私有Git仓库的.我知道很多地方都有相关的内容,但是这是有用的内容值得再次提及

找到一个解决方案

其实我的第一想法是GitHub。这是一个为各种软件实现托管的社会协作网站。虽然它能起作用,但是如果我想保持内容是私人的话(像汇票等)我将不得不付费使用。公共的(免费的)没有多大意义:这是一个个人的博客网站,不是真正的协作。

接下来,我认为只是放一个git仓库在服务器上,我从Sonic.net访问,我的旧ISP,我一直有一个账户。这儿的问题有是shell账户我不一定需要总是可用的。我发现我不得不安装git本身表明他们不是真的希望我做这样的事情。在任何情况下,该帐户并不是真的意味着可靠和可用的备份。

然而我意识到:我有一个庞大而且廉价的地方来存储我的数据,那就是"S3",一个非常可靠的地方。唯一的难点就是我需要将我本地的GIT仓库内容导入到我的S3容器中。我google了一下发现Jgit和很多的写这个项目的博客文章。

注:我已经使用亚马逊的S3来存储我的网站,这是显而易见的。然而我怀疑这个可能适用于其他的支持Jgit的“云存储”或者你可以修改它来支持你的托管。

使用 S3 作为私有 Git 仓库

创建一个S3容器

首先你需要有一个AWS的账户以及一个S3的容器,比如我的站点初始名称是"r343l.com",我命名我的GIT仓库容器为"r343l.gitrepos"。S3的容器必须有一个全球唯一名称因此我的大部分容器都是以这样的前缀方式进行命名。

步骤如下:

  1. 用你的ASW账户登录。

  2. 进入ASW的管理控制台选择S3。

  3. 点击“创建”并设置一个名称,默认情况下该容器仅对你授权,请仔细检查。

设置本地凭证访问 S3

这个步骤是用来获取访问仓库的AWS访问账号和密码的。例如,我们使用"main"作为账号。如果我们将bucket分享给其他人,你可以创建一些规则,将这些访问权限授权给在bucket上的这些用户。但是我们假设的是做的最简单的方式。值得注意的是一旦你在本地机器上拥有了一个文件,你必须对待他们像SSH私有证书一样。

     1.在右上角的菜单 My Account / Console menu 中的下拉菜单获取安全证书

     2.在你的home文件夹下创建一个名为“.jgit_s3_public”的文件(我用的是Mac,不确定在windows下是否正确)。确保只有你是可读的  (访问权限是600)。在unix-ish系统中的命令是

touch ~/.jgit_s3_public; chmod 600 ~/.jgit_s3_public

      3.在AWS证书页面,向下滚动知道看到“Your access keys”。点击“Show”来获取密钥。像下面的例子一样,将账号和密钥拷贝到新创的文件中:

accesskey: [access ID for AWS]
secretkey: [secret key for AWS]
acl: private

需要拷贝的是在AWS凭证页面任何包含在两个方括号之间的内容。"acl"行保证了你新上传的文件是私有的。

安装Jgit

Download下载软件。我选择的是包含shell脚本的版本,它该版本包含了一个运行Jgit的脚本(一个javav应用程序)和其java的代码。该命令位于项目根目录的 "bin" 文件夹,其别名 "jgit" 命令。

创建一个git仓库并将其上传到S3!

我们假设你的bucket是foo.gitrepos,其存储了你所有的给个人git仓库。就我而言,我把我的网站主放到了那么,而另外一个使用则可能是在另一个网站托管的的博客文章。你知道为什么大家说在博客软件之外编辑吗,因为你的浏览器有可能崩溃。现在好了,比在博客软件之外编辑更好的是将这些文件保存到一个单独的地方,以防托管的博客丢失。例如下面的例子,我们假设你又一耳光tumblr.

cd ~/
mkdir myrants-tumblr
cd myrants-tumblr
... create some files 
git init
git add *
git commit -m "my new files yay!"
git remote add s3 amazon-s3://.jgit_s3_public@foo.gitrepos/projects/myrants-tumblr
jgit push s3 refs/heads/master  ### 注意:是jgit,不是git



现在在S3上你有自己的文件了!

从 S3 获取你的文件

当你在另外一台电脑上,并且非常想要获取到你自己的文件该怎么办呢?现在好了,你只要安装 JGit 并且像以前一样设置一下其客户端的证书就可以了。然后克隆下git仓库中的内容

jgit clone amazon-s3://.jgit_s3_public@foo.gitrepos/projects/myrants-tumblr

然后你就可以根据需要编辑或者是增加文件了。把文件备份到S3就像之前PUSH的一样。需要注意的是,一旦在多个地方建立了本地仓库,在某些时候,是需要更新本地仓库代码的。用jgit的命令如下:

jgit fetch               ## gets updates from the S3 master
git merge s3/master

基本上,操作本地仓库时(添加,提交,合并)用git的本地命令,和S3 bucket交互时发送或者是接受数据则使用jgit

本文到此结束,希望本文对您有所帮助!

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。 2KB翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。


2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务

  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【计算机/互联网|】Nginx出现502错误(2020-01-20 21:02)
【计算机/互联网|】网站运营全智能软手V0.1版发布(2020-01-20 12:16)
【计算机/互联网|】淘宝这是怎么了?(2020-01-19 19:15)
【行业动态|】谷歌关闭小米智能摄像头,因为窃听器显示了陌生人家中的照片(2020-01-15 09:42)
【行业动态|】据报道谷歌新闻终止了数字杂志,退还主动订阅(2020-01-15 09:39)
【行业动态|】康佳将OLED电视带到美国与LG和索尼竞争(2020-01-15 09:38)
【行业动态|】2020年最佳AV接收机(2020-01-15 09:35)
【行业动态|】2020年最佳流媒体设备:Roku,Apple TV,Firebar,Chromecast等(2020-01-15 09:31)
【行业动态|】CES 2020预览:更多的流媒体服务和订阅即将到来(2020-01-08 21:41)
【行业动态|】从埃隆·马斯克到杰夫·贝佐斯,这30位人物定义了2010年代(2020-01-01 15:14)
联系我们

Q Q: 7090832

电话:400-0011-990

邮箱:7090832@qq.com

时间:9:00-23:00

联系客服
商家入住 服务咨询 投拆建议 联系客服
0577-67068160
手机版

扫一扫进手机版
返回顶部