Câu hỏi Xuất bản lên S3 bằng Git?


Có ai biết cách để làm điều này không? Cho đến nay tôi đã không thể tìm thấy bất cứ điều gì hữu ích thông qua Google.

Tôi thực sự muốn thiết lập một repo địa phương và sử dụng git push để xuất bản nó lên S3, ý tưởng là có quyền kiểm soát phiên bản cục bộ đối với tài sản nhưng lưu trữ từ xa trên S3.

Điều này có thể được thực hiện, và nếu như vậy, làm thế nào?


76
2017-08-11 19:32


gốc


OP, Hiện tại câu trả lời được chấp nhận không áp dụng cho câu hỏi được đặt ra. Nó sẽ có thể cập nhật cho tốt hơn? tôi tin s3fs là một giải pháp khả thi. - bnjmn
@Benjamin Cảm ơn vì đã gọi sự chú ý của tôi trở lại cái này, nó được cập nhật. - Andrew
Nó sẽ không có ý nghĩa để triển khai vào bất kỳ kho lưu trữ từ xa nào (để giữ lại lịch sử sao lưu của các cam kết) và sử dụng git hook chỉ cần đồng bộ hóa với một thùng S3 (ví dụ: s3cmd sync …)? - Fabien Snauwaert
Dưới đây là các bước: metamug.com/article/jgit-host-git-repository-on-s3.php - Sorter


Các câu trả lời:


1 Sử dụng JGit thông qua http://blog.spearce.org/2008/07/using-jgit-to-publish-on-amazon-s3.html

Tải về jgit.sh, đổi tên nó thành jgit và đặt nó vào đường dẫn của bạn (ví dụ $ HOME / bin).

Thiết lập tệp cấu hình .jgit và thêm phần sau (thay thế các khóa AWS của bạn):

$ vim ~ / .jgit

accesskey: aws access key
secretkey: aws secret access key

Lưu ý, bằng cách không chỉ định acl: public trong tệp .jgit, các tệp git trên S3 sẽ là riêng tư (đó là những gì chúng tôi muốn). Tiếp theo tạo một thùng S3 để lưu trữ kho lưu trữ của bạn, hãy gọi nó là git-repos và sau đó tạo kho lưu trữ git để tải lên:

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

Ở trên, tôi đang sử dụng công cụ dòng lệnh s3cmd để tạo nhóm nhưng bạn cũng có thể thực hiện nó thông qua giao diện web của Amazon. Bây giờ hãy đẩy nó lên đến S3 (lưu ý cách chúng tôi sử dụng jgit bất cứ khi nào chúng ta tương tác với S3 và git chuẩn khác):

jgit push origin master

Bây giờ hãy đi đến một nơi khác (ví dụ: cd / tmp) và thử nhân bản nó:

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

Khi đến lúc cập nhật (vì jgit không hỗ trợ hợp nhất hoặc kéo), bạn thực hiện theo 2 bước:

cd chef-recipes
jgit fetch
git merge origin/master

2 Sử dụng Hệ thống tập tin dựa trên FUSE được hỗ trợ bởi Amazon S3

  1. Nhận tài khoản Amazon S3!

  2. Tải xuống, biên dịch và cài đặt. (xem Cài đặtNotes)

  3. Chỉ định thông tin đăng nhập bảo mật của bạn (ID khóa truy cập và quyền truy cập bí mật Khóa) theo một trong các phương pháp sau:

    • sử dụng tùy chọn dòng lệnh passwd_file

    • thiết lập biến môi trường AWSACCESSKEYID và AWSSECRETACCESSKEY

    • sử dụng tệp .passwd-s3fs trong thư mục chính của bạn

    • sử dụng tệp / etc / passwd-s3fs toàn hệ thống

    • làm cái này

.

/usr/bin/s3fs mybucket /mnt

Đó là nó! nội dung của thùng amazon của bạn "mybucket" bây giờ có thể đọc / ghi trong / mnt


47
2017-11-08 06:24



Tôi đã làm theo các hướng dẫn này nhưng tôi nhận được The request signature we calculated does not match the signature you provided. Check your key and signing method lỗi khi tôi cố gắng jgit push origin master. Bất kỳ ý tưởng làm thế nào tôi có thể làm điều đó biến mất? - john
Tại sao bạn không dùng git? Điều này có vẻ như rất nhiều công việc / công cụ bổ sung chỉ cho một repo git đơn giản từ xa trên aws ... - cmcculloh
Tôi khuyên bạn nên cập nhật câu trả lời (thực) này để tiến thêm một bước với post-receive móc kiểm tra GIT_WORK_TREE. Xem đây để biết thêm chi tiết. Tôi đã kết thúc việc này để làm việc khá tốt với s3fs. Rất khuyến khích và cảm ơn vì đã giúp tôi bắt đầu. - bnjmn
@ cmculloh nếu bạn chưa có một cá thể EC2 thì điều đó có thể gây rắc rối hơn và chi phí lâu dài chỉ để có một repo git. Lưu trữ S3 cũng bền hơn nhiều theo mặc định; để có cùng độ bền trên EC2, bạn vẫn phải sao lưu ảnh chụp nhanh lên S3 - Jeremy
Có vẻ như bài đăng trên blog đã được cập nhật để làm cho trang dự án jgit liên kết với egit [eclipse.org/egit/] kho lưu trữ của dự án và điều đó làm cho toàn bộ giải pháp trở nên khó hiểu. Sau khi tìm kiếm một chút, tôi có thể tìm thấy trang dự án jgit gốc từ nơi jgit.sh có thể được tải xuống và sử dụng. Liên kết là eclipse.org/jgit/download cho bất cứ ai có thể cần nó trong tương lai. - M N Islam Shihan


Dandelion là một công cụ CLI khác sẽ giữ kho Git đồng bộ với S3 / FTP / SFTP: http://github.com/scttnlsn/dandelion


9
2018-04-03 20:08



Không có ý tưởng ai downvoted này. Tôi nghĩ rằng giải pháp này là tốt nếu mục tiêu là để có gia tăng triển khai cùng với git cho quản lý phiên bản địa phương và S3 để lưu trữ. Đó là những gì có vẻ là câu hỏi. - Tabrez


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

Bạn chỉ cần chạy git-s3 deploy

Nó đi kèm với tất cả các lợi ích của một repo git và tải lên / xóa chỉ là các tập tin bạn đã thay đổi.
Lưu ý: Triển khai không tiềm ẩn thông qua git push nhưng bạn có thể đạt được điều đó thông qua một git hook.


7
2017-07-18 07:04



FYI, điều này phụ thuộc vào Composer, điều này phụ thuộc vào PHP. - Maarten


Bạn có thể dùng mc aka Minio client, được viết bằng Golang và có sẵn theo Giấy phép Apache nguồn mở. Nó có sẵn cho Mac, Linux, Windows, FreeBsd. Bạn có thể dùng mc mirror lệnh để đạt được yêu cầu của bạn.

mc GNU / Linux Tải xuống 

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

Định cấu hình mc cho Amazon S3

$ mc config host add mys3 https://s3.amazonaws.com BKIKJAA5BMMU2RHO6IBB V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12
  • Thay thế bằng khóa bí mật / truy cập của bạn
  • Theo mặc định, mc sử dụng chữ ký phiên bản 4 của amazon S3.
  • mys3 là bí danh Amazon S3 cho máy khách minio

Phản ánh thư mục / kho lưu trữ cục bộ github của bạn mygithub đến tên thùng chứa Amazon S3 mygithubbkp

$ ./mc mirror mygithub mys3/mygithubbkp

Hy vọng nó giúp Disclaimer: Tôi làm việc cho Minio 


2
2018-03-18 09:29





Bạn có thể sử dụng deplybot (http://deploybot.com/) dịch vụ miễn phí cho kho lưu trữ git đơn lẻ.

Bạn có thể tự động triển khai bằng cách chọn "tự động" trong phần chế độ triển khai.

Tôi đang sử dụng nó ngay bây giờ. Nó rất dễ dàng và hữu ích.


1
2018-01-21 10:40



Không còn miễn phí nữa. - mxcl


phiên bản kiểm soát các tập tin của bạn với Github? Kịch bản này (và các cấu hình GitHub / AWS liên quan của nó) sẽ thực hiện các cam kết mới cho repo của bạn và đồng bộ chúng vào thùng S3 của bạn.

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


0
2018-04-05 15:14





Bạn cần JGit cho nó.

Chỉ cần lưu một file .jgit trong thư mục User với các thông tin aws và bạn có thể sử dụng git với s3.

Dưới đây là những gì git url của bạn sẽ như thế nào.

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

Bạn có thể làm mọi thứ bạn làm với git với jgit.

Nhận hướng dẫn thiết lập hoàn chỉnh tại đây.

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


0
2018-03-09 15:43