web-dev-qa-db-ja.com

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

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

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

  1. FakeS3 -ただし、Java = AWS SDK、Jenkinsでできることではなく、/ etc/hostsファイルを編集してネットワークを再起動する必要があります。また、それを試してみると、作成日フィールドの形式が間違っているというバグがあり、クライアントがスローします。例外ですが、プロジェクトに大きな自信を持っているわけではありません。
  2. Ceph-S3 APIを実装しますが、インストールに数分かかります
19
oggmonster

minio サーバーをラップトップ/システムにインストールしてみてください。そのオープンソースと単一の静的バイナリです。サーバーはS3互換です。次に、すべての操作に対して minio-Javaクライアントライブラリ を試すことができます。以下は基本的な 操作の例 です。

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

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

それが免責事項に役立つことを願って:私は Minio のために働きます

10
koolhead17

遅い答えは、主にDockerユーザーに役立ちます。 Riak CS と呼ばれるS3互換の優れたストレージソフトウェアがあり、サーバーをすばやく起動できる docker-riak-cs イメージがあります。

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

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

8
Ian Bytchek

テスト用に作成されたオープンソースのローカルAWSクラウドスタックである localstack を試すことができます。 S3を含むいくつかのAWSサービスの実装を提供します。

GitHubで非常に人気のあるオープンソースプロジェクトのようです。

5
Flux

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

3
RalfU

findify/s3mock -インプロセス、Javaテストを目的としたS3サーバー。テストしませんでした-ただつまずいただけです。Dockerは必要ありません。 HTH!:)

2
Artur Gajowy