Tagbangers Blog

​Spring Cloud for Amazon Web Services に PullRequest してみた

前回の Thymeleaf に続く PullRequest シリーズです。
今回は Spring Cloud for Amazon Web Services に PullRequest してみました。

Spring Cloud for Amazon Web Services ってなに?

Spring Cloud のサブプロジェクトで、AWS を使った開発を簡単にしてくれます。例えば、メッセージやキャッシングAPIなど、Spring のお作法で AWS の機能が簡単に使えます。

特に自分が気に入ったのは、SimpleStorageResource クラスですね。
このクラス自体は、Spring のパッケージスコープなので、直接使うことはないのですが、S3 に配置したファイルを、Spring の Resource クラスとして、ハードディスク上のファイルなどと同様にポリモーフィックに扱える点が良いですね。
つまり、ResourceLoader から、 s3://<bucket>/object> の形式で S3 のファイルを参照できるのです。
これまでは自分で Resource クラスを拡張して作っていましたが、今後はもうそれも不要です。

なにを修正したのか?

SimpleStorageResource の実装にちょこっと手を入れました。
SimpleStorageResource は、WritableResource を実装していて書込み可能な Resource の実装になっています。
自分が修正したのは、その書込み処理の後に、ObjectMetadata を読み込む処理を追加したことです。
ObjectMetadata の読込み処理を入れたことで、書込み処理後に exists や contentLength メソッドをコールしても最新の状態が取得できるようになりました。

これがその PullRequestです。
https://github.com/spring-cloud/spring-cloud-aws/pull/34

やっぱり PullRequest がマージされるとうれしいですね。