7 Frage: Mit Git auf S3 veröffentlichen?

Frage erstellt am Thu, Aug 11, 2011 12:00 AM

Weiß jemand, wie das geht? Bisher konnte ich über Google noch nichts Nützliches finden.

Ich würde wirklich gerne ein lokales Repo einrichten und es mit git push in S3 veröffentlichen. Die Idee dabei ist, die lokale Versionskontrolle über Assets, aber den Remotespeicher in S3 zu haben.

Ist dies möglich und wenn ja, wie?

    
81
  1. OP, Derzeit gilt die akzeptierte Antwort nicht für die gestellte Frage. Wäre ein Update zum Wohle der Allgemeinheit möglich? Ich halte s3fs für eine tragfähige Lösung.
    2012-11-02 15: 09: 01Z
  2. @ Benjamin Vielen Dank, dass Sie mich auf dieses Update aufmerksam gemacht haben.
    2012-11-03 00: 34: 37Z
  3. Wäre es nicht sinnvoll, in einem Remote-Repository zu implementieren (um den Sicherungsverlauf von Commits beizubehalten) und ein Git Hook zum einfachen Synchronisieren mit einem S3-Bucket (zB: s3cmd sync …)?
    2017-08-24 15: 41: 02Z
  4. 2018-05-28 08: 27: 38Z
7 Antworten                              7                         

1 Verwenden Sie JGit über http://blog.spearce.org/2008/07/using-jgit-to-publish-on-amazon-s3.html

Laden Sie jgit.sh herunter, benennen Sie es in jgit um und fügen Sie es in Ihren Pfad ein (zum Beispiel $HOME /bin).

Richten Sie die .jgit-Konfigurationsdatei ein und fügen Sie Folgendes hinzu (ersetzen Sie Ihre AWS-Schlüssel):

$vim ~ /.jgit

 
accesskey: aws access key
secretkey: aws secret access key

Wenn Sie in der .jgit-Datei nicht acl: public angeben, sind die git-Dateien in S3 privat (was wir wollten). Erstellen Sie als Nächstes einen S3-Bucket, in dem Ihr Repository gespeichert werden soll. Nennen wir ihn git-repos und erstellen Sie dann ein git-Repository zum Hochladen:

 
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

Oben benutze ich das Befehlszeilentool s3cmd, um den Bucket zu erstellen. Sie können dies jedoch auch über die Amazon-Weboberfläche tun. Lassen Sie es uns jetzt auf S3 hochschieben (beachten Sie, wie wir jgit verwenden, wenn wir mit S3 interagieren, und ansonsten auf Standardgit):

 
jgit push origin master

Gehen Sie jetzt an einen anderen Ort (z. B. cd /tmp) und versuchen Sie, es zu klonen:

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

Wenn es an der Zeit ist, es zu aktualisieren (da jgit Merge oder Pull nicht unterstützt), müssen Sie zwei Schritte ausführen:

 
cd chef-recipes
jgit fetch
git merge origin/master

2 Verwenden Sie das FUSE-basierte Dateisystem, das von Amazon S3 unterstützt wird .

  1. Eröffnen Sie ein Amazon S3-Konto!

  2. Herunterladen, kompilieren und installieren. (siehe Installationshinweise)

  3. Geben Sie Ihre Sicherheitsanmeldeinformationen an (Zugriffsschlüssel-ID und geheimer Zugriff) Key) mit einer der folgenden Methoden:

    • Verwenden der Befehlszeilenoption passwd_file

    • Festlegen der Umgebungsvariablen AWSACCESSKEYID und AWSSECRETACCESSKEY

    • Verwenden einer .passwd-s3fs-Datei in Ihrem Ausgangsverzeichnis

    • Verwenden der systemweiten Datei /etc /passwd-s3fs

    • mach das

.

 
/usr/bin/s3fs mybucket /mnt

Das war's! Der Inhalt Ihres Amazon-Eimers "mybucket" sollte jetzt in /mnt

lesbar /schreibbar sein     
49
2016-11-18 04: 44: 43Z
  1. Ich habe diese Anweisungen befolgt, erhalte jedoch einen The request signature we calculated does not match the signature you provided. Check your key and signing method-Fehler, wenn ich jgit push origin master versuche. Irgendeine Idee, wie ich das beseitigen kann?
    2012-02-06 21: 20: 46Z
  2. Warum würden Sie nicht einfach git verwenden? Dies scheint eine Menge zusätzlicher Arbeit zu sein, nur für ein einfaches Remote-Git-Repo auf aws ...
    2012-04-24 18:31: 10Z
  3. Ich würde vorschlagen, diese (echte) Antwort zu aktualisieren, um mit einem post-receive-Hook, der den GIT_WORK_TREE auscheckt, einen Schritt weiter zu gehen. Weitere Informationen finden Sie hier . Mit s3fs habe ich das ganz gut hinbekommen. Sehr zu empfehlen und vielen Dank, dass Sie mir beim Einstieg geholfen haben.
    2012-11-02 15: 00: 44Z
  4. @ cmculloh Wenn Sie noch keine EC2-Instanz haben, kann dies langfristig mehr Ärger und Kosten verursachen, nur um ein Git-Repo zu haben. Auch S3-Speicher ist standardmäßig viel langlebiger. Um auf EC2 die gleiche Lebensdauer zu erzielen, müssten Sie ohnehin Snapshots bis S3 sichern
    2013-03-23 ​​15: 01: 27Z
  5. Es scheint, dass der Blog-Beitrag so aktualisiert wurde, dass die jgit-Projektseite einen Link zu egit [ eclipse.org/egit/] das Projekt-Repository und das macht die gesamte Lösung 1 verwirrend. Nach ein wenig Suche konnte ich die ursprüngliche jgit-Projektseite finden, von der jgit.sh heruntergeladen und verwendet werden kann. Der Link ist eclipse.org/jgit/download für alle, die ihn in Zukunft benötigen.
    2013-12-06 19: 18: 55Z

Dandelion ist ein weiteres CLI-Tool, mit dem Git-Repositorys mit S3 /FTP /SFTP synchronisiert werden: http://github.com/scttnlsn/dandelion

    
10
2013-04-03 20: 08: 32Z
  1. Keine Ahnung, wer dies abgelehnt hat. Ich denke, diese Lösung ist gut, wenn das Ziel darin besteht, neben git auch inkrementelle Bereitstellungen für das lokale Versionsmanagement und S3 für das Hosting bereitzustellen. Das scheint die Frage zu sein.
    2014-01-02 18: 51: 35Z

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

Sie müssen nur git-s3 deploy ausführen

Es bietet alle Vorteile eines Git-Repos und lädt /löscht nur die Dateien, die Sie geändert haben.
Hinweis: Bereitstellungen sind nicht per Git-Push impliziert, aber Sie könnten dies über einen Git-Hook erreichen.

    
8
2013-07-18 07: 04: 33Z
  1. Zu Ihrer Information, dies hängt von Composer ab, was wiederum von PHP abhängt.
    2013-09-28 14: 06: 49Z

Sie können den mc aka Minio-Client verwenden, der in Golang & verfügbar unter Open Source Apache License. Es ist für Mac, Linux, Windows und FreeBsd verfügbar. Sie können den Befehl mc mirror verwenden, um Ihre Anforderung zu erfüllen.

mc GNU /Linux-Download

 
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

Konfigurieren von mc für Amazon S3

 
$ mc config host add mys3 https://s3.amazonaws.com BKIKJAA5BMMU2RHO6IBB V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12
  • Ersetzen Sie durch Ihren Zugriffs- /Geheimschlüssel
  • Standardmäßig verwendet mc die Signaturversion 4 von Amazon S3.
  • mys3 ist ein Amazon S3-Alias ​​für Minio-Clients

Spiegeln Sie den Namen mygithub Ihres lokalen Github-Repositorys /-Verzeichnisses in den Amazon S3-Bucket-Namen mygithubbkp

 
$ ./mc mirror mygithub mys3/mygithubbkp
Hoffe, es hilft Haftungsausschluss: Ich arbeite für Minio     
2
2016-03-22 04: 11: 14Z

Sie können deplybot verwenden( http://deploybot.com/) Service, der für das Single-Git-Repository kostenlos ist.

Sie können die Bereitstellung automatisieren, indem Sie im Abschnitt Bereitstellungsmodus die Option "Automatisch" auswählen.

Ich benutze es jetzt. Es ist sehr einfach und nützlich.

    
1
21.01.2016 10: 40: 44Z
  1. Nicht mehr kostenlos.
    2017-07-10 19: 49: 28Z

Versionskontrolle Ihrer Dateien mit Github? Dieses Skript (und die zugehörigen GitHub /AWS-Konfigurationen) übernimmt neue Commits in Ihr Repo und synchronisiert sie mit Ihrem S3-Bucket.

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

    
0
2017-04-05 15: 14: 11Z

Dazu benötigen Sie JGit .

Speichern Sie einfach eine .jgit-Datei mit aws-Anmeldeinformationen im Benutzerverzeichnis, und Sie können git mit s3 verwenden.

So sieht Ihre Git-URL aus.

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

Mit git können Sie alles tun, was Sie mit jgit tun.

Hier erhalten Sie eine vollständige Installationsanleitung.

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

    
0
2018-03-09 15: 43: 31Z
Quelle platziert Hier