Weiß jemand, wie man das macht? Bisher konnte ich über Google nichts Nützliches finden.
Ich möchte wirklich ein lokales Repo einrichten und git push
es in S3 veröffentlichen. Die Idee ist, die lokale Versionskontrolle über Assets, aber den Remotespeicher in S3 zu haben.
Kann das gemacht werden und wenn ja, wie?
s3fs
, eine tragfähige Lösung zu sein.s3cmd sync …
?Antworten:
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
Beachten Sie, dass die Git-Dateien in S3 privat sind, wenn Sie acl: public in der .jgit-Datei nicht angeben (was wir wollten). Erstellen Sie als Nächstes einen S3-Bucket, in dem Sie Ihr Repository speichern können. Nennen wir es git-repos und erstellen Sie dann ein git-Repository zum Hochladen:
Oben verwende ich das Befehlszeilentool s3cmd, um den Bucket zu erstellen, aber Sie können dies 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 Standard-git):
Gehen Sie jetzt woanders hin (zB cd / tmp) und versuchen Sie es zu klonen:
Wenn es Zeit ist, es zu aktualisieren (da jgit Merge oder Pull nicht unterstützt), tun Sie dies in zwei Schritten:
2 Verwenden Sie ein FUSE-basiertes Dateisystem, das von Amazon S3 unterstützt wird
Holen Sie sich ein Amazon S3-Konto!
Herunterladen, kompilieren und installieren. (siehe Installationshinweise)
Geben Sie Ihre Sicherheitsanmeldeinformationen (Zugriffsschlüssel-ID und geheimer Zugriffsschlüssel) mit einer der folgenden Methoden an:
Verwenden der Befehlszeilenoption passwd_file
Festlegen der Umgebungsvariablen AWSACCESSKEYID und AWSSECRETACCESSKEY
Verwenden einer .passwd-s3fs-Datei in Ihrem Home-Verzeichnis
Verwenden der systemweiten Datei / etc / passwd-s3fs
mach das
.
Das ist es! Der Inhalt Ihres Amazon-Buckets "mybucket" sollte jetzt lesbar / lesbar in / mnt sein
quelle
The request signature we calculated does not match the signature you provided. Check your key and signing method
Fehlermeldung, wenn ich es versuchejgit push origin master
. Irgendeine Idee, wie ich das zum Verschwinden bringen kann?post-receive
Hook, der das überprüft, noch einen Schritt weiter zu gehenGIT_WORK_TREE
. Sehen Sie hier für weitere Details. Am Ende funktionierte das ganz guts3fs
. Sehr zu empfehlen und danke, dass Sie mir beim Einstieg geholfen haben.Dandelion ist ein weiteres CLI-Tool, mit dem Git-Repositorys mit S3 / FTP / SFTP synchronisiert werden: http://github.com/scttnlsn/dandelion
quelle
git-s3 - https://github.com/schickling/git-s3
Du musst nur rennen
git-s3 deploy
Es bietet alle Vorteile eines Git-Repos und lädt / löscht nur die Dateien, die Sie geändert haben.
Hinweis: Bereitstellungen sind nicht implizit über Git-Push, aber Sie können dies über einen Git-Hook erreichen.
quelle
Composer
, was wiederum davon abhängtPHP
.Sie können den mc aka Minio-Client verwenden , der in Golang geschrieben und unter der Open Source Apache-Lizenz verfügbar ist. Es ist für Mac, Linux, Windows, FreeBsd verfügbar. Sie können den
mc mirror
Befehl verwenden, um Ihre Anforderung zu erfüllen.mc GNU / Linux herunterladen
Mc für Amazon S3 konfigurieren
Spiegeln Sie Ihr lokales Github-Repository / -Verzeichnis und sagen Sie den Namen
mygithub
zum Namen des Amazon S3- Bucketsmygithubbkp
Hoffe es hilft Haftungsausschluss: Ich arbeite für Minio
quelle
Sie können dies auch mit der AWS CLI und Git (mit Hooks) tun. Verifiziertes Arbeiten unter Windows 10. Sollte unter Linux / Mac funktionieren.
Setup Sync mit S3 beim Festschreiben
bare
Git-Repo aus Ihrem vorhandenen Git-Projekt:HINWEIS: Die Verwendung eines Bare-Repo dient als Upstream und das Bare-Repo enthält nur die Änderungen, die Sie in den S3-Bucket hochladen möchten, und nicht ignorierte Dateien, lokale Git-Konfigurationen usw.
post-update
inhooks
der bloßenmyproject.git
Verzeichnis.myproject
Verzeichnis und füge das Bare Repo als Upstream hinzu, nenne ess3
zum Beispiel:HINWEIS: Sie können einen relativen Pfad für den Pfad zum Bare-Verzeichnis verwenden.
Testen
s3
Upstream, wenn Sie Änderungen mit Ihrem S3-Bucket synchronisieren möchten.Verweise:
quelle
Sie können den Dienst deplybot ( http://deploybot.com/ ) verwenden, 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.
quelle
Versionskontrolle Ihrer Dateien mit Github? Dieses Skript (und die zugehörigen GitHub / AWS-Konfigurationen) übernimmt neue Commits für Ihr Repo und synchronisiert sie mit Ihrem S3-Bucket.
https://github.com/nytlabs/github-s3-deploy
quelle
Du brauchst JGit dafür.
Speichern Sie einfach eine .jgit-Datei im Benutzerverzeichnis mit aws-Anmeldeinformationen und Sie können git mit s3 verwenden.
So sieht deine Git-URL aus.
Sie können alles , was Sie tun , tun
git
mitjgit
.Eine vollständige Installationsanleitung erhalten Sie hier.
https://metamug.com/article/jgit-host-git-repository-on-s3.html
quelle