是否存在在本地提供Amazon S3样式API的服务器?

Chr*_*eld 64 amazon-s3

我们制作分布式软件,在a)数据库或b)Amazon S3中存储一些数据(附件).使用该数据库是因为它不需要其他配置.Amazon S3是更好的选择.

我们现在想要的是一个不想使用Amazon S3的客户的解决方案.我们显然可以只使用文件系统,但如果有多个Web服务器并且需要复制文件,这可能会有问题; 它还要求我们编写额外的代码来处理可能发生的各种问题.

如果有一台服务器软件基本上复制了Amazon S3的API,我们会优先考虑.这样我们的客户就可以在一个盒子上安装服务器; 我们不需要更改任何代码.那么......那里有没有这样的软件?

Kri*_*vas 39

minio对此很有用.用Go编写,易于部署.

  • 我曾经使用过的最恐怖的产品 该文档是平庸的。 (3认同)
  • 我很好奇您如何从“平庸的文档”或“文档非常糟糕”变成“可怕的产品”。 (3认同)
  • Min.io 拥有 GPLv3 affero 许可证,可能不适合各种商业用例。 (2认同)

Ste*_*pel 32

这可以通过OpenStack Object Storage(代号为Swift)实现,OpenStack一个开源软件,用于使用标准化服务器集群创建冗余,可扩展的对象存储,特别是最近添加的(可选)S3 API层,它模拟S3 REST API.对象存储的顶部.

有关官方文档,请参阅使用S3 API配置对象存储 - OpenStack Swift上的S3 API中提供了有关整个设置的更具洞察力和图解说明的小型教程(它基于更复杂的在EC2上安装OpenStack Swift集群).


更新

一个值得注意的替代方案是Ceph,它是一个统一的分布式存储系统,旨在提供出色的性能,可靠性和可扩展性 - 有趣的是,它提供了所有三种常见的存储模型,即对象存储,块存储文件系统,RADOS Gateway 提供了Amazon S3和与RADOS对象存储的OpenStack Swift兼容接口 [强调我的],有关当前支持的S3 API功能的详细信息,请参阅RADOS S3 API.


小智 9

我们遇到了在本地测试基于S3的代码的问题,并实际实现了一个小型Java服务器,它模拟了S3对象API.由于它可能对其他人有用,我们设置了一个github repo以及一个小型网站:http://s3ninja.net-所有OpenSource都在MIT许可下.

该工具非常简单和简约,非常适合测试和开发.但是,要在生产中使用,可能需要添加一些安全性(尽管已经在API中验证了AWS哈希 - 只是GUI完全不受保护).此外,它不执行任何复制或缩放.所以这对于大型设置来说不是一个好的选择.


MeS*_*See 7

你看过Cloudian了吗?我们在公司内部使用它来开发我们的S3应用程序.我使用的社区版可以免费提供高达10TB的存储空间.它具有相当不错的S3覆盖率或者至少覆盖了我的应用程序使用的大部分内容(我使用版本控制和分段上传,所以我认为我的应用程序是高级的).它生成的版本ID和多部分ID等与您从AWS获得的版本不同,但是到目前为止boto没有任何抱怨.它也适用于我尝试过的s3fs和其他s3桶浏览器.

在我看来,它是针对AWS S3 API进行开发的一个很好的工具,应该满足您的要求.您可以将应用程序指向您当地的Cloudian服务器,然后当您准备好进行生产时,您可以将其指向亚马逊.你的里程可能有所不同......祝你好运.