java 認証 統合テスト用のAWS S3ローカルサーバー



instanceprofilecredentialsprovider (5)

AWS S3を使用して(Java AWS SDKを使用して)ファイルをアップロードおよびダウンロードするコードがいくつかあります。 私はそれのためにいくつかのテストを書くことができるようにしたいのですが、誰かに何か良い選択肢があるのか​​どうか疑問に思いました。 理想的には、高速に起動でき、システム構成を必要としない、ローカルで動作する軽量のS3サーバーが必要です(テストはJenkinsが実行する必要があります)。

これまで見てきたいくつかのオプション:

  1. FakeS3 - 私が探しているものとほとんど同じですが、Java AWS SDKを使用する場合は、/ etc / hostsファイルを編集してネットワークを再起動する必要がありますFakeS3できることはありません。 それを試してみると、作成日フィールドのフォーマットが間違っているためにクライアントから例外がスローされるというバグがあるようです。これは、プロジェクトに大きな自信を持って私を刺激するものではありません。
  2. Ceph - S3 APIを実装していますが、インストールに数分かかります

私はLadonのためにS3サーバーAPIプロジェクトを始めました、それは簡単なファイルシステムリポジトリを含みます。 そのJavaプロジェクトで、簡単なテストのためのSpring Boot Starterが含まれています。 すべてのS3 API機能がまだサポートされているわけではありませんが、要求に応じて追加します。 そのGithub上: Ladon S3サーバー


回答が遅れた場合、Dockerユーザーにとっては大いに役立つでしょう。 Riak CSと呼ばれる素晴らしいS3互換のストレージソフトウェアがあり、素早くサーバーを起動することを可能にするdocker-riak-csイメージがあります。

私は2年近くローカル開発と統合テストにそれを使っていて大成功を収めています。 それにはいくつかの制限がありますが、邪魔になるような大きなことは何もありません。api/ compatibilityのdocumentation参照してください。

Dockerを使用しないソリューションが必要な場合は、ビルドごとにローカルにセットアップできます。すべてのセットアップおよび構成スクリプトは、 docker-riak-csリポジトリにあります。


findify/s3mock - テストを目的としたインプロセスのJava S3サーバ。 それをテストしませんでした - ちょうどそれにつまずいた。 港湾労働者を必要としない、それは利点かもしれません。 HTH! :)


あなたはあなたのラップトップ/システム、そのオープンソースおよび単一の静的バイナリにminioサーバーをインストールすることを試みることができます。 サーバーはS3互換です。 その後、あなたはすべての操作のためにminio-javaクライアントライブラリを試すことができます、以下は基本的な操作の例です。

ミニサーバーのインストール[GNU / Linux]

$ wget https://dl.minio.io/server/minio/release/linux-amd64/minio
$ chmod 755 minio
$ ./minio --help  

免責事項: Minioで働いています


ローカルのAWSクラウドスタックであるlocalstackを試すことができます。 S3を含むいくつかのAWSサービスの実装を提供します。





amazon-s3