Czy ktoś wie, jak to zrobić? Jak dotąd nie udało mi się znaleźć niczego przydatnego w Google.
Naprawdę chciałbym skonfigurować lokalne repozytorium i użyć go git push
do opublikowania go w S3, pomysł polega na tym, aby mieć lokalną kontrolę wersji nad zasobami, ale zdalne przechowywanie na S3.
Czy można to zrobić, a jeśli tak, to w jaki sposób?
s3fs
jest to realne rozwiązanie.s3cmd sync …
:)?Odpowiedzi:
1 Użyj JGit przez http://blog.spearce.org/2008/07/using-jgit-to-publish-on-amazon-s3.html
Pobierz plik jgit.sh, zmień jego nazwę na jgit i umieść go w swojej ścieżce (na przykład $ HOME / bin).
Skonfiguruj plik konfiguracyjny .jgit i dodaj następujące elementy (zastępując klucze AWS):
$ vim ~ / .jgit
Zauważ, że nie określając acl: public w pliku .jgit, pliki git na S3 będą prywatne (co chcieliśmy). Następnie utwórz zasobnik S3 do przechowywania repozytorium, nazwijmy go git-repos, a następnie utwórz repozytorium git do przesłania:
W powyższym używam narzędzia wiersza poleceń s3cmd do tworzenia wiadra, ale możesz to również zrobić za pośrednictwem interfejsu internetowego Amazon. Teraz przejdźmy do S3 (zauważ, jak używamy jgit za każdym razem, gdy wchodzimy w interakcję z S3, a standardowego git w przeciwnym razie):
Teraz przejdź do innego miejsca (np. Cd / tmp) i spróbuj go sklonować:
Kiedy przychodzi czas na aktualizację (ponieważ jgit nie obsługuje scalania ani ściągania), robisz to w 2 krokach:
2 Użyj systemu plików opartego na FUSE wspieranego przez Amazon S3
Załóż konto Amazon S3!
Pobierz, skompiluj i zainstaluj. (patrz uwagi dotyczące instalacji)
Określ swoje poświadczenia bezpieczeństwa (identyfikator klucza dostępu i tajny klucz dostępu) za pomocą jednej z następujących metod:
używając opcji wiersza poleceń passwd_file
ustawienie zmiennych środowiskowych AWSACCESSKEYID i AWSSECRETACCESSKEY
używając pliku .passwd-s3fs w swoim katalogu domowym
używając pliku / etc / passwd-s3fs dla całego systemu
Zrób to
.
Otóż to! zawartość twojego zasobnika amazon "mybucket" powinna być teraz dostępna do odczytu / zapisu w / mnt
źródło
The request signature we calculated does not match the signature you provided. Check your key and signing method
przy próbie pojawia się błądjgit push origin master
. Masz jakiś pomysł, jak mogę to odejść?post-receive
haka, który sprawdzaGIT_WORK_TREE
. Więcej informacji znajdziesz tutaj . Skończyło się na tym, że całkiem dobrze to działałos3fs
. Gorąco polecam i dziękuję za pomoc w rozpoczęciu.Dandelion to kolejne narzędzie CLI, które będzie synchronizować repozytoria Git z S3 / FTP / SFTP: http://github.com/scttnlsn/dandelion
źródło
git-s3 - https://github.com/schickling/git-s3
Po prostu musisz biec
git-s3 deploy
Ma wszystkie zalety repozytorium git i przesyła / usuwa tylko zmienione pliki.
Uwaga: Wdrożenia nie są niejawne za pomocą git push, ale można to osiągnąć za pomocą haka git.
źródło
Composer
, co z kolei zależyPHP
.Możesz użyć klienta mc aka Minio , napisanego w języku Golang i dostępnego na licencji Open Source Apache. Jest dostępny dla komputerów Mac, Linux, Windows, FreeBsd. Możesz użyć
mc mirror
polecenia, aby spełnić swoje wymagania.mc GNU / Linux Pobieranie
Konfigurowanie MC dla Amazon S3
Utwórz kopię lustrzaną lokalnego repozytorium / katalogu
mygithub
na githubie, powiedz nazwę do nazwy zasobnika Amazon S3mygithubbkp
Mam nadzieję, że to pomoże Zastrzeżenie: Pracuję dla Minio
źródło
Możesz to również zrobić za pomocą interfejsu AWS CLI i Gita (z hakami). Zweryfikowana praca na Windows 10. Powinna działać na Linux / Mac.
Skonfiguruj synchronizację z S3 po zatwierdzeniu
bare
repozytorium git dla istniejącego projektu git:UWAGA: Korzystanie z samego repozytorium będzie służyło jako nadrzędne, a samo repozytorium będzie zawierało tylko zmiany, które chcesz przesłać do zasobnika S3, a nie ignorowane pliki, lokalne konfiguracje git itp.
post-update
whooks
gołymmyproject.git
katalogu.myproject
katalogu i dodaj nagie repozytorium jako nadrzędne, nazwij jes3
na przykład:UWAGA: Możesz użyć ścieżki względnej jako ścieżki do katalogu podstawowego.
Testowanie
s3
wyższy poziom, jeśli chcesz zsynchronizować zmiany z zasobnikiem S3.Bibliografia:
źródło
Możesz skorzystać z usługi deplybot ( http://deploybot.com/ ), która jest bezpłatna dla pojedynczego repozytorium git.
Możesz zautomatyzować wdrażanie, wybierając opcję „automatyczne” w sekcji trybu wdrażania.
Używam go teraz. Jest to bardzo łatwe i przydatne.
źródło
kontrola wersji plików za pomocą Github? Ten skrypt (i powiązane z nim konfiguracje GitHub / AWS) przyjmie nowe zatwierdzenia do Twojego repozytorium i zsynchronizuje je z Twoim zasobnikiem S3.
https://github.com/nytlabs/github-s3-deploy
źródło
Potrzebujesz do tego JGit .
Po prostu zapisz plik .jgit w katalogu użytkownika z poświadczeniami aws i możesz używać git z s3.
Oto, jak będzie wyglądał Twój adres URL git.
Można zrobić wszystko, co robisz ze
git
zjgit
.Uzyskaj pełny przewodnik konfiguracji tutaj.
https://metamug.com/article/jgit-host-git-repository-on-s3.html
źródło