0

我开发了一个应用程序,用户可以上传他们的文件并相互共享。这些文件是每个用户的一些私人文件和个人资料图片等公共文件。我将文件存储在 Azure 文件存储中。

假设我有一个方法可以用它的 id 检索文件:我已经在 WebApi 控制器的文件访问方法中实现了权限。

Azure 文件存储是否适合这种情况?

从 Azure 存储中检索文件的最佳方式是什么?我应该在服务器端读取文件(使用 Azure .NET SDK)并将它们流式传输到客户端吗?有什么方法可以避免在 WebApi 中流式传输文件,然后客户端可以直接从 Azure 文件存储访问文件(考虑到权限)?

谢谢

4

3 回答 3

2

Azure 文件存储的存在主要是为了允许将遗留应用程序提升和转移到云中。我建议将 Blob 存储与SAS 令牌结合使用来解决您的问题。使用 SAS 令牌,您可以控制 blob 级别的访问权限。这避免了在将文件转发给最终用户之前先将文件放在 Web 服务器上的需要。

于 2016-09-09T09:05:23.867 回答
1

据我所知,我们可以使用 Azure Blob 存储来存储您的文件。Azure blob 存储容器提供三种访问级别:完全公共读取访问权限、仅针对 blob 的公共读取访问权限、无公共读取访问权限。有关详细信息,请参阅本文。对于您的方案,请将私有文件保存在“无公共读取权限”中,并将公共文件保存在“仅限 Blob 的公共读取权限”中。这样用户就无法访问您的私人文件,但可以读取您的公共文件。如果您想与他人共享私人文件,请尝试 LoekD 提到的 SAS。如果您想使服务器端的 SAS 令牌过期。请尝试使用 SAS 策略来执行此操作。阅读这篇文章了解更多详情。

于 2016-09-12T05:43:31.593 回答
1

Azure 文件和 Azure Blob 存储都支持 SAS 和 REST 访问。Azure 文件支持除生活和转变之外的其他关键场景。虽然有点老,但这篇文章 ( https://blogs.msdn.microsoft.com/windowsazurestorage/2014/05/12/introducing-microsoft-azure-file-service/ ) 解释了 Azure Blob 与 Azure 文件之间的区别。 Azure 磁盘。您还应该考虑共享的大小限制、文件夹结构、本地安装到 VM 的能力、最大文件/对象大小、吞吐量要求、定价、SMB/REST 支持等因素。如果您仍有疑问,请发送发送电子邮件至 microsoft.com 上的 azurefiles,我们将很乐意审查您的方案并推荐适合您使用方案的选项。

于 2016-09-10T17:56:19.453 回答