当前位置: 首页 > 知识库问答 >
问题:

java - 请教有什么开源的 亚马逊S3服务网关吗?

锺离明煦
2024-01-26

亚马逊S3作为对象服务的接口,被大量云服务厂商支持。目前有没有什么开源的S3网关呢?

需求场景类似下面场景:假如你打算自建一个支持S3接口的对象服务,对外提供你自己的 Endpoint、AccessKey、区域、桶资源等配置。除了自建底层的对象存储服务以外,作为一个可选项,也可以仅仅代理其他的支持S3接口的云厂商的对象存储服务。

S3网关MinIO有提供,简单了解了一下(可能有错误),好像只是针对单一存储桶的代理,没有留意访问MinIO网关是使用MinIO提供的AccessKey还是底层存储服务的。另外好像MinIO的S3网关已经停止更新了。

如果不考虑性能问题,S3网关似乎只需要处理AWS V4版本签名算法,对客户端的签名进行验证,之后按底层资源的AccessKey等信息重新进行签名,然后把请求内容转发给底层存储服务即可。

基于这一点,我们先做了一版最简单的S3请求转发功能(需要重新签名)。 不知道有什么开源的S3网关版本吗?

共有1个答案

伯英锐
2024-01-26

根据你的问题,这里有一些开源的亚马逊S3服务网关供你参考:

  1. MinIO: 虽然你提到MinIO的S3网关已经停止更新,但它仍然是一个功能强大的开源S3网关。MinIO提供了完整的S3兼容性,并且具有高可用性和可扩展性。
  2. Traefik: 是一个反向代理和负载均衡器,支持S3。通过使用Traefik作为网关,你可以轻松地为你的S3存储桶提供安全的访问。
  3. Fission Workflows: Fission是一个可扩展的函数即服务(FaaS)平台,它有一个组件叫做Workloads,可以作为S3网关。
  4. Kube-router: 是一个为Kubernetes服务的路由器和负载均衡器,也支持S3。它可以作为边缘服务,为通过Kubernetes运行的S3存储桶提供路由和负载均衡。
  5. Convox Rack: Convox是一个为AWS和Kubernetes构建的云原生平台。Rack是其组成部分之一,可以作为S3网关。

这些开源项目中的每一个都有其特定的优点和用途,可以根据你的具体需求选择最合适的项目。

 类似资料:
  • 亚马逊网络服务(AWS)是亚马逊的云网络托管平台,提供灵活,可靠,可扩展,易于使用且经济高效的解决方案。

  • 我刚刚开始使用AWS EC2。我明白EC2就像一台远程计算机,在那里我可以做几乎所有我想做的事情。然后我发现了ECS的事。我知道它使用Docker,但我对这两者之间的关系感到困惑。 ECS只是EC2中的Docker安装吗?如果我已经有一个EC2并且我启动了一个ECS,这是否意味着我有两个实例?

  • S3前缀的定义到底是什么。 假设我有以下S3结构: sample.jpg?的前缀是什么 将是前缀或整个路径,直到将是前缀(即) 因为每个前缀都有读写限制。

  • 问题是,我正在尝试获取Amazon S3存储库中的文件。我收到了来自亚马逊的消息“InvalidAccessKeyId” 您提供的AWS访问密钥ID不存在于我们的记录中。(服务:Amazon S3;状态代码:403;错误代码:InvalidAccessKeyId;请求ID:62781C914754D8ED;S3扩展请求ID:fhv2t247XoEK99IZ6/f8lcWUz7IWlGybGfb2H

  • 我在AWS上托管了几个微服务(Springdge)。例如,让我们假设Service1和Service2是两个微服务。Service1是前端和移动应用程序访问的微服务。Service1调用Service2。Service2完全是内部的。 我已经设置了位于Service1前面的Amazon API网关。我使用cognito配置了身份验证(Oauth)。 这一切都在起作用。当从前端/应用程序调用时,请求

  • 我设置了一个 AWS 服务器和一个使用 GCM 和 SNS 推送通知的Android应用程序。 应用程序注册成功,即收到带有注册ID的通知。 有没有办法检查设备是否收到了通知,但由于某种原因没有发送到< code>BroadcastReceiver? 此外,可能我做了一些错误的事情(可能是包名)?以下是清单: