1. ホーム
  2. git

[解決済み] Gitを使ってS3へパブリッシュする?

2023-03-05 07:07:40

質問

どなたか、この方法をご存じないでしょうか?今のところ、Google で有用なものを見つけることができません。

私は本当にローカルレポをセットアップして git push を使用して S3 に公開することで、アセットに対してローカルなバージョン管理を行いながら、S3 にリモートで保存できるようにしたいと考えています。

これは可能ですか?可能な場合、どのように可能ですか?

どのように解決するのですか?

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

jgit.shをダウンロードし、jgitにリネームしてパス(例:$HOME/bin)に入れます。

.jgit configファイルを設定し、以下を追加します(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はmergeやpullをサポートしていないので)更新するときは、2つのステップで行います。

cd chef-recipes
jgit fetch
git merge origin/master

2 使用方法 Amazon S3 でバックアップされた FUSE ベースのファイルシステム

  1. Amazon S3 アカウントを取得しましょう

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

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

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

    • AWSACCESSKEYIDとAWSSECRETACCESSKEYの環境変数の設定

    • ホームディレクトリにある.passwd-s3fsファイルを使用します。

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

    • これを行う

.

/usr/bin/s3fs mybucket /mnt

これで、amazonバケット(mybucket)の中身が/mntに読み書きできるようになりました。