Amazon s3 是否有在本地提供AmazonS3风格API的服务器?

Amazon s3 是否有在本地提供AmazonS3风格API的服务器?,amazon-s3,Amazon S3,我们制作了分布式软件,将一些数据(附件)存储在a)数据库或b)AmazonS3中。使用该数据库是因为它不需要其他配置。AmazonS3是更好的选择 我们现在想要的是为不想使用AmazonS3的客户提供解决方案。显然,我们可以只使用文件系统,但如果有多个web服务器,并且需要复制文件,那么这可能会有问题;它还要求我们编写额外的代码来处理可能发生的各种问题 我们更愿意看到的是,如果有一款服务器软件实质上复制了AmazonS3的API。这样我们的客户端就可以将服务器安装在一个盒子上;我们不需要更改任何

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

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

我们更愿意看到的是,如果有一款服务器软件实质上复制了AmazonS3的API。这样我们的客户端就可以将服务器安装在一个盒子上;我们不需要更改任何代码。所以有这样的软件吗?

这可以通过,这是一种开源软件,用于使用标准化服务器集群创建冗余、可扩展的对象存储,特别是最近添加的(可选)S3 API层,它在对象存储之上模拟S3 REST API

有关官方文档,请参阅-中提供了一个关于整个设置的更具洞察力和图解说明的小教程(该教程建立在更复杂的基础上)


更新 一个值得注意的替代方案是,它是一个统一的分布式存储系统,旨在实现卓越的性能、可靠性和可扩展性——有趣的是,它提供了所有三种常见的存储模型,即a和RADOS网关为RADOS对象存储提供了Amazon S3和OpenStack Swift兼容接口[emphasis mine],有关当前支持的S3 API功能的详细信息,请参阅。

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


在我看来,这是一个针对AWS S3 API进行开发的好工具,应该能够满足您的要求。您可以将应用程序指向本地Cloudian服务器,然后在准备生产时将其指向Amazon。您的里程数可能会有所不同……祝您好运。

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


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

正如前面提到的:您可以尝试将其用作Amazon S3的替代方案。看看文件系统,它可以让您将存储在Swift中的OpenStack容器作为本地文件系统进行装载。

我最近开始使用Skylable来满足S3的需要,它免费(GPL)。他们的对象存储支持复制、HA和重复数据消除,并且完全兼容S3。如果不需要冗余,您可以在单个服务器(iron、虚拟机或容器)上运行他们的软件,或者如果需要HA,您可以使用更多节点

每个bucket可以选择复制副本的数量,就像Swift一样。 我从副本2中的2个节点开始,随着我们的用户群开始增长,我添加了更多节点,以应对额外的网络流量和空间需求

添加更多节点非常简单,可以在实时集群上完成

根据我的经验,Skylable被证明比Swift更快、更可靠。它是用C和OCaml编写的,不需要解释。内存占用非常少,所以我甚至可以在一些便宜的VP上运行节点


最近,他们宣布正在开发Swift API,显然他们的目标是取代Swift。

虽然最初的问题是关于S3兼容软件(看起来)的生产使用,但许多人对相同的软件感兴趣,只是为了本地开发和测试

关于生产就绪解决方案,有一个很棒的S3兼容存储软件,名为,它是可靠的,经过多年的生产验证,一个缺点是安装不简单。有一些限制,但没有什么大的障碍,请参阅api/兼容性

对于开发和测试,这已经有了一些很好的答案,这将对Docker用户很有用–有一个映像可以快速启动Riak CS实例。我在本地开发和集成测试中使用了近2年,取得了巨大的成功。

将非常有用。以Go编写,易于部署

二进制文件下载:

要作为S3服务器运行,请执行以下操作:

minio服务器路径/到/磁盘/存储

访问密钥和密码将被输出到控制台。

如果您想拥有一个类似S3的API,但自己托管数据,那么minio的出现就在所难免了

如果你想编写与S3交互的服务,但你想在本地测试它们的速度,你可以使用Localstack,我想我在这里没有提到。它不仅模拟S3,还模拟许多其他AWS服务。我不建议对实际的客户文件使用它,因为它是一个仅用于测试的内存中数据存储


现在也有了。+1表示伪S3-这是我项目中最简单的替换。更改了两行代码,瞧,我们支持本地文件服务器。许可证看起来也不错。minio.io似乎更容易。一开始是可以理解的。刚刚看到这一点:不幸