自托管 S3 替代方案 [关闭]

Posted

技术标签:

【中文标题】自托管 S3 替代方案 [关闭]【英文标题】:Self hosted S3 alternative [closed] 【发布时间】:2011-03-22 14:06:04 【问题描述】:

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

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

还添加了赏金:)

要求:

RESTful API 仅限客人获取 在 Debian 上运行

很高兴拥有:

自动分发

编辑:澄清一下,我不想与 S3 建立任何连接

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

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

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

【讨论】:

来自 Ceph 主页:“Ceph 正在大力开发,除了基准测试和审查之外,尚不适合任何用途。”。你是说它比桉树更稳定? Ceph 的 RADOS、Gateway 和 RBD 已准备好生产。 cephFS 仍然缺乏,尽管似乎一些配置正在大型生产站点中使用。 (ceph.com/docs/master/faq/#is-ceph-production-quality)【参考方案4】:

如果您正在寻找分布式文件系统,何不试试 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/

问候, J.

【讨论】:

【参考方案5】:

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

【讨论】:

【参考方案6】:

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

【讨论】:

【参考方案7】:

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

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

【讨论】:

以上是关于自托管 S3 替代方案 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Kafka Confluent HTTP Sink Connector 的开源替代方案 [关闭]

管理 VPS 服务器并安装 cpanel 替代方案 [关闭]

现在 Google 网络搜索 API 已被弃用,还都有哪些替代方案? [关闭]

数据中心的 Amazon S3 替代方案?

寻找 Parse 替代服务器

非公共工件的 Maven 存储库托管? [关闭]