【问题标题】:node.js app server needs a companion file servernode.js 应用服务器需要一个伴随文件服务器
【发布时间】:2016-11-10 15:31:27
【问题描述】:

我正在运行 node.js 作为我的应用服务器,它可以很好地满足我的大部分需求。我的应用程序的很大一部分是将媒体文件上传和下载到服务器。

我需要的功能接近于 Amazon S3 或 Azure blob 存储提供的功能 - 允许每小时上传和下载数千个文件(多个服务器都可以)。在允许上传/下载之前对用户进行身份验证的能力。我希望用于下载/上传的 URL/URI 将包括会话密钥、文件名和链接的到期时间。

我不明白如何使用 NGINX 来实现这一点。任何关于什么是这个下载/上传要求的最佳平台的指导都会非常有帮助。

【问题讨论】:

    标签: node.js azure fileserver


    【解决方案1】:

    以下是 azure 存储 blob 的可扩展性目标概览:

    • 每个存储帐户的总请求率(假设对象大小为 1KB)
      -- 高达 20,000 IOPS、每秒实体或每秒消息

    • 单个 blob 的目标吞吐量
      --每秒最多 60 MB,或每秒最多 500 个请求

    这些功能应该可以满足您的要求。有关 Azure 存储可扩展性和性能目标的更多信息,请参阅 https://azure.microsoft.com/en-us/documentation/articles/storage-scalability-targets/

    在您的应用程序中,您可以利用 Blob 存储的 SAS 令牌,在指定的时间段内授予客户端对您的存储帐户中的对象的有限权限,并具有一组指定的权限。

    例如,您提供 Blob 的 SAS URI 供用户在其浏览器中下载,您的用户将直接向 Azure 存储服务器请求并下载 Blob。这也将可以共享您的 Web 服务的访问工作量。详情可以参考https://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-shared-access-signature-part-1/

    最后,您可以使用 Azure Web Apps 来托管您的 node.js 应用程序,它还提供了多种功能,请参阅https://azure.microsoft.com/en-us/documentation/articles/app-service-web-overview/ 了解更多信息。

    【讨论】:

    • 谢谢加里。我过去使用过 Azure 和 Amzon,它们运行良好。我发布的问题是针对另一个应用程序,我无法将信息保存在公共云上,它需要保留在我们的数据中心内部。
    • 您的问题解决了吗?或者您能说明一下您的要求吗?
    • 我最终使用 node.js 进行文件传输。上传和下载两者。为了澄清,我正在寻找“什么是文件传输(上传和下载)的最有效方法,只有在客户端被授权传输所述文件时才允许上传和下载”这个问题的答案。这类似于 Amazon、Google 或 Azure(及其 blob)所做的,不同之处在于我希望此服务器在我的基础架构上运行,而不是在云提供商基础架构上运行。
    猜你喜欢
    • 1970-01-01
    • 2018-12-15
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 2023-02-14
    • 2011-11-08
    • 2012-04-14
    • 1970-01-01
    相关资源
    最近更新 更多