什么';让用户在Openstack Swift中访问文件的最佳方法是什么?

什么';让用户在Openstack Swift中访问文件的最佳方法是什么?,openstack,openstack-swift,Openstack,Openstack Swift,我们是Openstack云用户之一,使用Swift在云中存储大量文件。我们的用户(最终用户)将访问这些文件。如果文件是公共的,那么最终用户可以直接访问web或移动应用程序中的对象URL。但是,有些文件是私有的。每个最终用户只能访问自己的私有文件 最终用户可以使用两种方法访问其私人文件: 最终用户总是向我们的服务器发送请求。我们的服务器将从Swift获取文件,然后将它们发送给用户。在这个 方法,我们的服务器可以被视为文件代理。我们有 Openstack的身份验证,用户具有 我们的服务器。我们应该维

我们是Openstack云用户之一,使用Swift在云中存储大量文件。我们的用户(最终用户)将访问这些文件。如果文件是公共的,那么最终用户可以直接访问web或移动应用程序中的对象URL。但是,有些文件是私有的。每个最终用户只能访问自己的私有文件

最终用户可以使用两种方法访问其私人文件:

最终用户总是向我们的服务器发送请求。我们的服务器将从Swift获取文件,然后将它们发送给用户。在这个 方法,我们的服务器可以被视为文件代理。我们有 Openstack的身份验证,用户具有 我们的服务器。我们应该维护自己的用户系统

这种方法的一个问题是可伸缩性。因为每一个请求 将被发送到我们的服务器,那么如果 许多文件同时上传或下载。高地 如果我们没有足够的资源,就不能使用Swift的可伸缩性功能 服务器。实际上,除了文件,我们真的不需要很多服务器 转移

B.最终用户直接向Swift发送请求。它可以解决巨大的文件带宽问题。但他必须有身份认证 Openstack方法。因此,我们需要数千个Openstack帐户 我们的用户,而我们只是Openstack的用户之一!看来 奇怪而且不可行

是否有其他方法可以满足要求?

您可以使用服务器获取文件(场景A),但将该服务器置于“云中”。然后,随着访问需要扩展,您可以在负载平衡器下启动其他服务器。因此,您将根据需要水平分布负载

一个主意


(免责声明:我是Rackspace的员工)

第三种方法是使用swift的tempurl功能,当客户需要文件时,您为该文件生成一个签名url,检查他们是否获得授权,他们获得的url允许他们直接从swift下载, 因此,解决了两个问题

1. User A can not get User B's files
2. Download is straight from swift, so your server does not become the bottleneck for downloads (only for authorization).

您可以使用B选项,通过单个用户名/密码对所有用户进行身份验证,该用户名/密码是经销商在Swift身份验证系统中定义的管理员。您可以为不同的用户创建不同的Swift帐户,但使用相同的令牌进行访问。那么如何让用户a不访问用户B的文件?谢谢谢谢似乎增加更多的服务器是解决这个问题的最好方法,不是吗?