用于集成测试的 AWS S3 本地服务器

我有一些代码可以使用AWS S3(使用Java AWS开发工具包)上传和下载文件。我希望能够为它写一些测试,我想知道是否有人有任何好的选择。理想情况下,我想要一个在本地运行的轻量级S3服务器,可以快速启动并且不需要系统配置(测试需要由Jenkins运行)。

到目前为止,我已经看过一些选项:

  1. FakeS3 - 几乎正是我正在寻找的,但是,在使用Java AWS开发工具包时,您必须编辑/etc/hosts文件并重新启动网络,这不是我在Jenkins中可以做的事情。此外,在尝试时,似乎有一个错误,创建日期字段的格式错误,这使我的客户抛出异常,这并没有激发我对项目的信心。
  2. Ceph - 实现 S3 API,但需要几分钟才能安装

答案 1

您可以尝试 localstack,它是一种用于测试的开源本地 AWS 云堆栈。它提供了多个 AWS 服务的实现,包括 S3。

它看起来像GitHub上一个非常流行的开源项目。


答案 2

您可以尝试在笔记本电脑/系统上安装minio服务器,其开源和单个静态二进制文件。服务器与 S3 兼容。然后你可以尝试所有操作的minio-java客户端库,下面是基本操作示例

安装 minio server [GNU/Linux]

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

希望它有帮助 免责声明:我为Minio工作


推荐