私の内部データセンターにある1つのSpring Bootアプリケーションがあり、ホスト上の特定のフォルダーからのファイルを処理します。
これをawsにデプロイし、s3バケットを使用して処理するファイルをアップロードしたいと考えていました。
dockerボリュームとしてs3バケットスペースを追加する方法はありますか?
マシンにドライブをマウントするためのDockerボリュームはありません( https://docs.docker.com/storage/volumes/ )
S3 APIを使用して、Dockerコンテナーからバケットを管理できます( https://docs.aws.Amazon.com/AmazonS3/latest/API/Welcome.html )
AWS S3はオブジェクトストアであり、Dockerのボリュームとしてマウントすることはできません。
そうは言っても、SpringアプリケーションでS3を使用するのは非常に簡単で、spring-cloud
と呼ばれるフレームワークが開発されています。 spring-cloud
はAWSとうまく連動します。
ここにサンプルコードがあります:
public void uploadFiles(File file, String s3Url) throws IOException {
WritableResource resource = (WritableResource) resourceLoader.getResource(s3Url);
try (OutputStream outputStream = resource.getOutputStream()) {
Files.copy(file.toPath(), outputStream);
}
}
詳細なブログは こちら にあります。