Pregunta ¿Publicar en S3 usando Git?


¿Alguien sabe como hacer esto? Hasta ahora no he podido encontrar nada útil a través de Google.

Realmente me gustaría configurar un repositorio local y usar git push publicarlo en S3, la idea es tener control de versión local sobre los activos pero almacenamiento remoto en S3.

¿Se puede hacer esto? Y si se puede, cómo?


76
2017-08-11 19:32


origen


Respuestas:


1 Use JGit vía http://blog.spearce.org/2008/07/using-jgit-to-publish-on-amazon-s3.html

Descargue jgit.sh, cambie el nombre a jgit y póngalo en su ruta (por ejemplo $ HOME / bin).

Configure el archivo de configuración .jgit y agregue lo siguiente (sustituyendo sus claves AWS):

$ vim ~ / .jgit

accesskey: aws access key
secretkey: aws secret access key

Tenga en cuenta que al no especificar acl: public en el archivo .jgit, los archivos git en S3 serán privados (que es lo que queríamos). Luego crea un cubo S3 para almacenar tu repositorio, vamos a llamarlo git-repos, y luego crea un repositorio git para cargar:

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

En lo anterior, estoy usando la herramienta de línea de comandos s3cmd para crear el cubo, pero también puedes hacerlo a través de la interfaz web de Amazon. Ahora vamos a empujarlo a S3 (observe cómo usamos jgit cada vez que interactuamos con S3, y el git estándar de lo contrario):

jgit push origin master

Ahora ve a otro lugar (por ejemplo, cd / tmp) e intenta clonarlo:

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

Cuando llega el momento de actualizarlo (porque jgit no es compatible con merge o pull) lo haces en 2 pasos:

cd chef-recipes
jgit fetch
git merge origin/master

2 Utilizar Sistema de archivos basado en FUSE respaldado por Amazon S3

  1. ¡Obtén una cuenta de Amazon S3!

  2. Descargue, compile e instale. (ver InstallationNotes)

  3. Especifique sus credenciales de seguridad (ID de clave de acceso y acceso secreto) Clave) por uno de los siguientes métodos:

    • usando la opción de línea de comando passwd_file

    • configuración de las variables de entorno AWSACCESSKEYID y AWSSECRETACCESSKEY

    • usando un archivo .passwd-s3fs en su directorio de inicio

    • utilizando el archivo system-wide / etc / passwd-s3fs

    • hacer esto

.

/usr/bin/s3fs mybucket /mnt

¡Eso es! el contenido de su cubo de Amazon "mybucket" debería ser ahora accesible para lectura / escritura en / mnt


47
2017-11-08 06:24



Dandelion es otra herramienta CLI que mantendrá los repositorios Git sincronizados con S3 / FTP / SFTP: http://github.com/scttnlsn/dandelion


9
2018-04-03 20:08



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

Solo tienes que correr git-s3 deploy

Viene con todos los beneficios de un git repo y sube / elimina solo los archivos que ha cambiado.
Nota: las implementaciones no están implícitas a través de git push, pero puedes lograrlo a través de un git hook.


7
2017-07-18 07:04



Puedes usar mc aka Minio cliente, está escrito en Golang y está disponible bajo Open Source Apache License. Está disponible para Mac, Linux, Windows, FreeBsd. Puedes usar mc mirror comando para lograr su requerimiento

mc GNU / Linux Descargar 

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

Configurando mc para Amazon S3

$ mc config host add mys3 https://s3.amazonaws.com BKIKJAA5BMMU2RHO6IBB V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12
  • Reemplace con su clave de acceso / secreto
  • Por defecto mc usa la firma de la versión 4 de amazon S3.
  • mys3 es alias de Amazon S3 para el cliente de minio

Refleje su repositorio / directorio local de github, digamos nombre mygithub a amazon S3 nombre del cubo mygithubbkp

$ ./mc mirror mygithub mys3/mygithubbkp

Espero eso ayude Descargo de responsabilidad: trabajo para Minio 


2
2018-03-18 09:29



Puedes usar deplybot (http://deploybot.com/) servicio que es gratuito para el repositorio single git.

Puede automatizar la implementación seleccionando "automático" en la sección del modo de implementación.

Lo estoy usando ahora. Es muy fácil y útil.


1
2018-01-21 10:40



versión de control de sus archivos con Github? Este script (y sus configuraciones asociadas de GitHub / AWS) tomará nuevas confirmaciones para su repositorio y las sincronizará en su depósito S3.

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


0
2018-04-05 15:14



Necesitas JGit para ello.

Solo guarde un archivo .jgit en el directorio de usuario con credenciales aws y puede usar git con s3.

Así es como se verá tu git url.

amazon-s3://.jgit@mybucket/myproject.git

Puedes hacer todo lo que haces con git con jgit.

Obtenga una guía de configuración completa aquí.

https://metamug.com/article/jgit-host-git-repository-on-s3.php


0
2018-03-09 15:43