gitbucket-windows-backup-pluginの0.5をリリースしたお話
はじめに
gitbucket-windows-backup-pluginの0.5をリリースしました。 今回のリリースで以下の機能の追加を行いました。
AWS S3へのアップロード
バックアップって言っても同じドライブ、同じハードにバックアップしたってしょうがないよねと言う事で、オブジェクトストレージのデファクトスタンダードなAWS S3にアップロード出来るようにしました。
winbackup { # S3 compatible object storage for backup upload (Optional) s3 { # Endpoing URL endpoint = "http://localhost:9000" # Region region = "US_EAST_1" # Access key access-key = "access-key" # Secret key secret-key = "secret-key" # Bucket of backup destination bucket = "gitbucket" } }
設定ファイルにS3の設定を行うことでバックアップの最終ステップでバックアップをオブジェクトストレージに転送するようにしました。
バックアップの即時実行
ほぼテスト用の機能なのですが、admin権限付きでhttp://http://localhost:8080/api/v3/winback/execute-backup
にHTTP POSTすることでバックアップを即時実行できるようにしました。
ScalaでもAWS S3互換にファイルをアップロードしたい
はじめに
S3にファイルをアップロードするコードを追加するのに、いきなりAWSを契約するのは勇気が要る*1のでとりあえずS3のコンパチ品でテストしてみることにしました。
Minio
こちらのMinioさん、単一のファイルをダウンロードして実行するだけで使える割とよさげなオブジェクトストレージサーバです。
minio server C:\Hoge
また、何かと不遇な扱いを受けるWindowsにもきっちりと対応しているナイスガイで、弊社の好感度は割と高めです。
AWS SDK
S3のコンパチ品を使う以上、S3のSDKはもちろん動くよねってことでAWS Java SDK For Amazon S3を投入します。
sbtに
libraryDependencies += "com.amazonaws" % "aws-java-sdk-s3" % "1.11.277"
を追加し、あとはネット上に死ぬほど転がっているJavaのサンプルコードをもとにぽぽーんとコードを書けばあっという間にアップロードが出来ます。かんたんですね
val credentials = new BasicAWSCredentials("access-key", "secret-key") val clientConfiguration = new ClientConfiguration clientConfiguration.setSignerOverride("AWSS3V4SignerType") val s3Client = AmazonS3ClientBuilder .standard() .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration("http://192.168.0.100:9000", Regions.US_EAST_1.name())) .withPathStyleAccessEnabled(true) .withClientConfiguration(clientConfiguration) .withCredentials(new AWSStaticCredentialsProvider(credentials)) .build() val f = new File("""C:\Users\jyuch\gitzip\backup-201802090041.zip""") s3Client.putObject(new PutObjectRequest("gitbucket", f.getName, f))
おわりに
楽っちゃ楽なのですが、fat jarを生成するとバイナリサイズが+10MBになるのは割とアンニュイな感じです。
*1:契約後1年は無料枠があるっぽいですが
gitbucket-windows-backup-pluginの0.4をリリースしたお話
はじめに
という訳でgitbucket-windows-backup-pluginの0.4をリリースしました。
新機能
バックアップの成功時もしくは失敗時にメール通知を行うようにしました。
バックアップの成功時もしくは失敗時にメール通知を行うには、GitBucketのSMTP設定を設定したうえで以下のような設定をbackup.conf
に追加します。
winbackup { # バックアップ成功時に通知メールを送信します(オプション デフォルトはfalse) notify-on-success = true # バックアップ失敗時に通知メールを送信します(オプション デフォルトはfalse) notify-on-failure = true # 通知先を指定します notify-dest = ["jyuch@localhost"] }
弊社の環境ではGmailでテストを行っております。その他の環境で動かない場合はいい感じに頑張ってもらうか弊社まで連絡下さい。
backup.conf
の完全な説明はREADMEをご覧ください。
おわり