import io.findify.s3mock.S3Mock
S3Mock api = S3Mock.create(8001, "/tmp/s3");
api.start();
AmazonS3Client client = new AmazonS3Client(new AnonymousAWSCredentials());
// use local API mock, not the AWS one
client.setEndpoint("http://127.0.0.1:8001");
client.createBucket("testbucket");
client.putObject("testbucket", "file/name", "contents");
8条答案
按热度按时间ktca8awb1#
还有一个Findify s3mock工具就是为了这个目的而编写的,它在本地文件系统上模拟了AWS S3 API的基本部分:
它还可以轻松嵌入,无需配置。
vlf7wbxs2#
如果您不介意依赖于正在运行的docker容器,并且希望得到良好的支持,则可以考虑使用localstack
在运行测试之前,按如下方式启动S3:
然后在测试完成时停止,如下所示:
你需要配置你的S3客户端指向localhost:5000进行测试。在Java中,这可以这样做:
rkkpypqq3#
另一个选项是S3 ninja-模拟S3 API以用于开发和测试。
ddarikpa4#
看一下Adobe's S3Mock,这个S3 Mock服务器可以通过Docker容器或JUnit 4/5规则启动。
e0bqpujr5#
Tornado是一个python web框架,它有一个示例应用程序,正是你所需要的。
https://github.com/facebook/tornado/blob/master/demos/s3server/s3server.py
它可以开箱即用。
tktrz96b6#
你可以使用scality s3server,它可以在你的机器上运行,使用node.js或者通过docker,它给你一个本地的S3服务示例。
hgtggwj07#
LocalS3是一个不错的选择。
pvcm50d18#
一种选择是放弃Jetty服务器,使用Apache VFS和S3 plugin,这样,您就可以使用基于内存或文件的存储实现进行集成测试。