自托管S3替代品

时间:2010-07-29 08:02:12

标签: http rest storage local-storage datastore

我正在寻找依赖RESTful API的S3替代方案,这样我就可以简单地插入http://datastore1.example.com/ID之类的链接,并且可以直接下载。 我看过RIAK和Bitcache。它们看起来都很漂亮:http://bitcache.org/api/rest但它们有一个问题。我想成为唯一一个可以上传数据的人。其他任何人都可以通过发送PUT请求来使用我们的数据存储区。

有没有办法配置RIAK,以便每个人都可以“获取”,但不是每个人都可以删除或删除除我之外的文件?您可以推荐其他服务吗?

还添加Bounty:)

要求:

  • RESTful API
  • 访客仅限
  • 在Debian上运行

非常高兴:

  • 自动发布
编辑:为了澄清我不希望任何与S3的连接我有很棒的服务器只是躺在硬盘和非常好的网络连接(3Gbps)我不需要S3 ..

7 个答案:

答案 0 :(得分:6)

Riak的作者recommend将一个HTTP代理放在Riak前面,以便提供访问控制。您可以选择任何您喜欢的代理服务器(例如nginx或Apache),以及您喜欢的任何访问控制策略(例如基于IP地址,HTTP基本身份验证或cookie的授权,假设您的代理服务器可以处理它)。例如,在nginx中,您可以指定limit_except(同样在Apache中使用LimitExcept)。

或者,您也可以直接向Riak添加访问控制。它基于Webmachine,因此一种方法是实现is_authorized

答案 1 :(得分:3)

根据您提供的信息,我建议使用Eucalyptus(http://open.eucalyptus.com/)。他们有一个S3兼容的存储系统。

答案 2 :(得分:3)

可靠的分布式对象存储RADOS是ceph文件系统的一部分,它提供S3 gateway

我们使用了Eucalyptus存储系统,Walrus,但我们遇到了可靠的问题。

答案 3 :(得分:1)

如果您正在寻找分布式文件系统,为什么不尝试hadoop hdfs?

http://hadoop.apache.org/common/docs/r0.17.0/hdfs_design.html

有一个可用的Java API:

http://hadoop.apache.org/common/docs/r0.20.2/api/org/apache/hadoop/fs/FileSystem.html

目前,安全性是一个问题 - 至少如果您有权访问终端:

http://developer.yahoo.com/hadoop/tutorial/module2.html#perms

但是你可以部署hdfs,在它前面放置一个应用服务器(使用Java API)(GlassFish)并使用Jersey来构建RESTful API:

http://jersey.java.net/

如果你有兴趣建造这样的东西,请告诉我,因为我可能很快会建造类似的东西。

您可以使用Cloudera Hadoop Distribution让生活变得更轻松:

http://www.cloudera.com/hadoop/

格尔茨, 学家

答案 4 :(得分:0)

我想你应该在serverfault.com上提出你的问题,因为它与系统有关。 无论如何,我可以建议你mogileFS很好地扩展:http://danga.com/mogilefs/

答案 5 :(得分:0)

WebDAV就像它获得的RESTful一样,并且有许多实现可以扩展到各种用途。在任何情况下,如果它是REST并且它是HTTP,则服务器支持的任何身份验证方案都应该允许您控制可以上载的人。

答案 6 :(得分:0)

您可以将其自行开发为Web应用程序或现有应用程序的一部分。它将使用HTTP请求,检索其URI组件,将其转换为S3对象名称,并使用getObject()获取其内容(使用可用的S3 SDK之一,例如AWS Java SDK)。

您可以尝试托管解决方案 - s3auth.com(我是开发人员)。这是一个开源项目,你可以看到这个机制是如何在one of its core classes内部实现的。 HTTP请求由服务处理,然后重新转换为Amazon S3内部身份验证方案。