我正在尝试建立我的应用程序的“行走骨架”,它将使用 S3 来实现持久性。我想使用一个假的 S3 服务,这样每个开发人员的桌面都可以随意读/写。
我认为 mocks3 是完美的,因为我可以在我的 jUnit 测试中启动一个码头服务器。问题是 mocks3 不允许任何 _写入_。据我所知,甚至没有设置它。
那么其他人是如何做到这一点的呢?
原文由 Michael Deardeuff 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在尝试建立我的应用程序的“行走骨架”,它将使用 S3 来实现持久性。我想使用一个假的 S3 服务,这样每个开发人员的桌面都可以随意读/写。
我认为 mocks3 是完美的,因为我可以在我的 jUnit 测试中启动一个码头服务器。问题是 mocks3 不允许任何 _写入_。据我所知,甚至没有设置它。
那么其他人是如何做到这一点的呢?
原文由 Michael Deardeuff 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您可以依赖正在运行的 docker 容器,并且想要得到很好的支持,您可以考虑使用 localstack
在运行测试之前,像这样启动 S3:
docker run --name localstack -d -p 5000:5000 -e SERVICES=s3:5000 localstack/localstack
然后在测试完成时停止它,如下所示:
docker stop localstack
您需要将 S3 客户端配置为指向 localhost:5000 以进行测试。在 Java 中,可以这样做:
AmazonS3ClientBuilder.standard()
.withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(
"http://localhost:5000",
"us-west-2"))
.build();
原文由 Stimp 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
还有一个专门为此目的而编写的 Findify s3mock 工具。它在本地文件系统之上模拟 AWS S3 API 的基本部分:
它还易于嵌入且无需配置。