web-dev-qa-db-ja.com

Gitを使用してS3に公開しますか?

誰もこれを行う方法を知っていますか?これまでのところ、Googleを介して有用なものを見つけることができていません。

ローカルリポジトリをセットアップし、git Pushを使用してそれをS3に公開したいと考えています。これは、S3のアセットではなくリモートストレージをローカルバージョンで制御するという考え方です。

これはできますか?

81
Andrew

1http://blog.spearce.org/2008/07/using-jgit-to-publish-on-経由でJGitを使用しますAmazon-s3.html

Jgit.shをダウンロードし、名前をjgitに変更して、パス($ HOME/binなど)に入れます。

.jgit構成ファイルをセットアップし、次を追加します(AWSキーを置き換えます)。

$ vim〜/ .jgit

accesskey: aws access key
secretkey: aws secret access key

.jgitファイルでacl:publicを指定しないことにより、S3のgitファイルはプライベートになります(これが目的です)。次に、リポジトリを保存するS3バケットを作成し、git-reposと呼び、アップロードするgitリポジトリを作成します。

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

上記では、バケットを作成するためにs3cmdコマンドラインツールを使用していますが、Amazon Webインターフェースからも実行できます。次に、S3にプッシュします(S3とやり取りするときは常にjgitを使用し、それ以外の場合は標準のgitを使用します)。

jgit Push Origin master

次に、別の場所(cd/tmpなど)に移動して、クローンを作成します。

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

更新するときが来たら(jgitはマージまたはプルをサポートしないため)、2つのステップでそれを行います:

cd chef-recipes
jgit fetch
git merge Origin/master

2 Use Fuse-based file system backed by Amazon S

  1. Amazon S3アカウントを取得してください!

  2. ダウンロード、コンパイル、インストールします。 (InstallationNotesを参照)

  3. 次のいずれかの方法でセキュリティ資格情報(アクセスキーIDとシークレットアクセスキー)を指定します。

    • passwd_fileコマンドラインオプションを使用する

    • aWSACCESSKEYIDおよびAWSSECRETACCESSKEY環境変数の設定

    • ホームディレクトリで.passwd-s3fsファイルを使用する

    • システム全体の/ etc/passwd-s3fsファイルを使用する

    • これを行う

/usr/bin/s3fs mybucket /mnt

それでおしまい! Amazonバケット「mybucket」の内容は、/ mntで読み取り/書き込み可能になります。

50
Riceball LEE

Dandelionは、GitリポジトリとS3/FTP/SFTPの同期を維持する別のCLIツールです。 http://github.com/scttnlsn/dandelion

10
scttnlsn

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

実行する必要があるのはgit-s3 deploy

Gitリポジトリのすべての利点があり、変更したファイルだけをアップロード/削除します。
注:デプロイはgit Pushを介して暗黙的に行われるわけではありませんが、gitフックを介して実現できます。

8
schickling

mc別名Minioクライアント を使用できます。Golangで記述されており、オープンソースApacheライセンスで利用できます。 Mac、Linux、Windows、FreeBsdで利用可能です。 mc mirrorコマンドを使用して要件を達成できます。

mc GNU/Linuxダウンロード

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

Amazon S3のmcの設定

$ mc config Host add mys3 https://s3.amazonaws.com BKIKJAA5BMMU2RHO6IBB V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12
  • アクセス/秘密鍵に置き換えます
  • デフォルトで、mcはAmazon S3の署名バージョン4を使用します。
  • mys3は、minioクライアントのAmazon S3エイリアスです

githubのローカルリポジトリ/ディレクトリの名前mygithubをAmazon S3バケット名mygithubbkpにミラーリングします

$ ./mc mirror mygithub mys3/mygithubbkp

免責事項に役立つことを願っています: Minio

2
koolhead17

Deplybot( http://deploybot.com/ )サービスを使用できます。このサービスは、単一のgitリポジトリに対して無料です。

展開モードセクションで[自動]を選択すると、展開を自動化できます。

今使っています。非常に簡単で便利です。

1
Jayaprakash

JGit が必要です。

Aws資格情報を使用してUserディレクトリに.jgitファイルを保存するだけで、s3でgitを使用できます。

Git urlは次のようになります。

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

gitで行うすべてのことをjgitで実行できます。

ここで完全なセットアップガイドを入手してください。

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

0
Sorter

githubでファイルをバージョン管理しますか?このスクリプト(および関連するGitHub/AWS構成)は、リポジトリに新しいコミットを取得し、S3バケットに同期します。

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

0
Max Hodges