10

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

有没有办法配置 RIAK,让每个人都可以“获取”但不是每个人都可以 PUT 或 DELETE 文件,除了我?还有其他可以推荐的服务吗?

还添加赏金:)

要求:

  • RESTful API
  • 客人只得到
  • 在 Debian 上运行

很高兴拥有:

  • 自动分发

编辑:为了澄清我不想要任何与 S3 的连接,我有很棒的服务器,只有硬盘驱动器和非常好的网络连接(3Gbps)我不需要 S3 ..

4

7 回答 7

6

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

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

于 2010-12-09T19:09:51.520 回答
3

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

于 2010-07-29T19:31:39.493 回答
3

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

我们使用了 Eucalyptus 存储系统 Walrus,但我们确实遇到了问题。

于 2010-08-01T12:49:42.907 回答
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.

于 2010-12-10T01:07:54.790 回答
0

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

于 2010-12-13T03:31:56.087 回答
0

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

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

于 2012-09-24T13:47:20.537 回答
0

WebDAV 与 RESTful 差不多,并且有许多实现可以扩展到各种用途。无论如何,如果它是 REST 并且是 HTTP,那么服务器支持的任何身份验证方案都应该允许您控制谁可以上传。

于 2010-12-13T05:00:01.813 回答