我有一些代码,上传和下载文件使用AWS S3(使用Java AWS SDK)。我希望能够写一些测试,我想知道是否有人有任何好的选择。理想情况下,我想一个轻量级的S3服务器,本地运行,可以快速启动,不需要系统配置(测试需要由Jenkins运行)。
到目前为止,我已经考虑了一些选项:
- FakeS3-几乎正是我所寻找的,然而,当使用Java AWS SDK时,你必须编辑你的/etc/hosts文件并重新启动网络,这不是我在Jenkins中可以做的事情。另外,当尝试它时,似乎有一个错误,创建日期字段格式错误,这使我的客户端抛出异常,这并没有激发我对项目的信心。
1.Ceph-实现S3 API,但安装需要几分钟
8条答案
按热度按时间62o28rlo1#
您可以尝试localstack,这是一个开源的本地AWS云堆栈,它提供了几个AWS服务的实现,包括S3。
它看起来像是GitHub上非常流行的开源项目。
mspsb9vt2#
您可以尝试在您的笔记本电脑/系统上安装minio服务器,它是开源的,并且是单一的静态二进制文件。服务器是S3兼容的。然后您可以尝试minio-java client library的所有操作,下面是基本的operations example。
安装迷你服务器[GNU/Linux]
希望对您有所帮助免责声明:我为Minio工作
iswrvxsc3#
晚回答,将主要是对Docker用户有用.有一个伟大的S3兼容的存储软件称为Riak CS和docker-riak-cs图像,允许快速启动服务器.
我已经用它进行本地开发和集成测试近两年了,取得了巨大的成功,它有一些限制,但没有什么大的问题,请参阅API / compatibility documentation。
如果您需要无Docker-less解决方案,您可以在本地为每个构建进行设置,所有设置和配置脚本都可以在docker-riak-cs存储库中找到。
qni6mghb4#
Minio提供了(在我看来)最好的一组特性、灵活性和易用性。它可以作为Docker容器或二进制文件用于主要操作系统。
要从minio开始,非常简单:
minio server /data
它可以完美地与s3cmd一起工作,并且为流行的编程语言提供了很好的文档。
ubof19bj5#
我为Ladon启动了一个S3服务器API项目,它包含一个简单的文件系统库。它是一个Java项目,包含一个用于简单测试的Sping Boot Starter。不是所有的S3 API特性都被支持,但我会根据要求添加它们。它在Github上:Ladon S3 Server
cvxl0en26#
findify/s3mock-一个进程内的Java S3服务器,旨在测试。没有测试它-只是偶然发现它。不需要Docker,这可能是一个优势。HTH!:)
tvokkenx7#
minio和localstack我都试过了,localstack的问题是s3 bucket中的存储不是持久性的。我想只有当你有pro版本的时候它才会支持percistency。minio非常容易使用,而且它是免费的持久性的。
fae0ux8s8#
我为不同的用例创建了不同的bucket,例如:my-dev-bucket和my-prod-bucket。我不知道这是否符合你的使用标准,但你可能想考虑一下。附带的好处是它使你的预生产和生产代码遵循完全相同的流程。