自托管的S3替代方案

10
我正在寻找一个依赖于RESTful API的S3替代方案,这样我就可以简单地插入链接(如http://datastore1.example.com/ID),并且它们是直接可下载的。
我已经查看了RIAK和Bitcache。它们似乎都很不错:http://bitcache.org/api/rest,但它们有一个问题。我希望只有我能够上传数据,否则任何人都可以通过发送PUT请求来使用我们的数据存储。
是否有一种方法可以配置RIAK,使每个人都可以“GET”,但除了我之外,其他人不能PUT或DELETE文件?您还可以推荐其他服务吗?
另外添加赏金 :)
要求:
- RESTful API - 仅限用户GET - 运行在Debian上
非常好有:
- 自动分布式
编辑:澄清一下,我不想与S3产生任何连接,我有很棒的服务器闲置着,它们拥有硬盘和非常好的网络连接(3Gbps),我不需要S3...
7个回答

6
Riak的作者建议在Riak前面放置一个HTTP代理以提供访问控制。您可以选择任何喜欢的代理服务器(例如nginx或Apache)和任何喜欢的访问控制策略(例如基于IP地址的授权、HTTP基本身份验证或cookie,假设您的代理服务器可以处理它)。例如,在nginx中,您可以指定limit_except(同样在Apache中为LimitExcept)。 另外,您也可以直接向Riak添加访问控制。它基于Webmachine,因此一种方法是实现is_authorized

3

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


3

可靠的分布式对象存储RADOS是ceph文件系统的一部分,提供了一个S3网关

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


1
从Ceph主页上可以看到:“Ceph正在进行大量开发,目前仅适用于基准测试和评估,还不适合其他任何用途。”。您是在说它比Eucalyptus更稳定吗? - Vnuk
1
Ceph的RADOS、Gateway和RBD已经可以用于生产环境。尽管cephFS还有所欠缺,但在一些大型生产场景中似乎已经开始使用某些配置。(http://ceph.com/docs/master/faq/#is-ceph-production-quality) - Javier

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分发版使生活变得更加轻松:

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

问候,J。


0

我猜你应该在serverfault.com上提出你的问题,因为它更与系统相关。 无论如何,我可以向你推荐mogileFS,它的扩展性非常好:http://danga.com/mogilefs/


0

WebDAV 是最符合 RESTful 的协议之一,有许多实现可以适用于各种用途。无论如何,如果它是 REST 和 HTTP,则服务器支持的任何身份验证方案都应该允许您控制谁可以上传。


0

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

您可以尝试托管解决方案 - s3auth.com(我是开发人员)。这是一个开源项目,您可以查看其中一个核心类内部实现此机制的方式。 HTTP请求由服务处理,然后重新翻译为Amazon S3内部身份验证方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接