Git LFS サーバーを Amazon S3 に立ててみた
Git LFS を利用していたところ,こんなメールがGitHubからきました.
Git LFS has been disabled on your personal account xrdnk because you’ve exceeded your data plan by at least 150%. Please purchase additional data packs to cover your bandwidth and storage usage:
容量オーバー!使いすぎィ! GItHubは課金しないと1GBまでしかGit LFSが利用できないんですよね…. ということで何とかすることに.
Git LFS
大容量バイナリデータを扱うための拡張機能という理解でいます.
一般的なGit LFSの話はこちらが詳しく, qiita.com
Unityを絡めた話だとこちらが詳しく書かれております.
www.slideshare.net
GitHubは無料枠だとアカウントごとに1GB,GitLabはリポジトリごと10GB…. Unity,特にVR等は大容量なデータを扱っているために,GitLabを用いるところが多いんだとか. ただまあ自分はGitHubを使いたいので(草的に),Git LFSサーバーをS3に切り替えることにしました.
前準備
Git LFS
Git LFSはgitとは別にインストールする必要があります. インストールされていない場合はインストールを.
ちなみにSourcetreeにはGit LFS機能が搭載されていた気がする.
Git LFS トラック対象ファイル設定
.gitignoreはよく使われますが,それと似たような奴を作ります..gitattributesです.
自分は基本的に.gitignoreや.gitattributesを作る時は,curlを叩きます. (逐一.gitignoreや.gitattributesのテキストファイルをコピペ作成するのがめんどい)
ディレクトリをルートにして,以下のように叩きます.
VSCodeならターミナル開いて,以下をコピペして叩けばいけるはず.
curl -o .gitignore https://raw.githubusercontent.com/github/gitignore/master/Unity.gitignore curl -o .gitattributes https://gist.githubusercontent.com/nemotoo/b8a1c3a0f1225bb9231979f389fd4f3f/raw/15f60a55a50b5c058de5e14369051ed268db0c77/.gitattributes
AWS アカウント
また,AWSアカウントがない場合は作成する必要があります. 今なら1年間無料でAmazon EC2やS3を利用できるため,無料枠で大丈夫です.
AWSは丁寧に誘導してくれるので,基本ボタンぽちぽちしてたらできてしまいます.
実際に Amazon S3 に Git LFS サーバーを立てる
結論から言うと,以下の記事の通りに進めばできました. 丁寧に書かれているので,手順に沿って行ってください.
手順に沿って行えば,S3にGit LFS用のサーバーが立てられます.
以下,自分が行った時の注意点を書いておきます.
リージョン設定
東京リージョンにしたい場合はコメントに書かれている以下のyamlを利用するとよい感じです.
CREATE_COMPLETEになるには少しラグがある
まあサーバーを立てているわけなので,少し待ちます. 自分の場合は自動で状況が変化しなかったので,右上の更新ボタンを押してみたらCREATE_COMPLETEになりました.
S3に立てたサーバーに実際にLFSオブジェクトをpushしてみる
サイズ46.1KBのpngデータをpushしてみます.
// lfs urlを変更 git config -f .lfsconfig lfs.url <<表示されたエンドポイントのURL >> // もししっかり設定が変更されているか確認したい場合は以下のコマンドを叩き, // Endpoint = <<表示されたエンドポイントのURL>>になっていればOK git lfs env
そしてpush.
実際にS3を確認してみると….
同じ容量のデータがS3に格納されているのを確認できました.名前については暗号化されております.
diffで暗号化時のファイル名が書かれているので,そちらで比較しても同じでした.
終わりに
できたのでハッピー😊 とはいえ,無料枠だとS3は5GBまでなので….これを超えてしまったらそのときで….