【问题标题】:Download progress with a logging callback?使用日志回调下载进度?
【发布时间】:2018-01-22 15:30:55
【问题描述】:

我在这里遇到了一个令人头疼的挑战。

我有一个在 Azure 中运行的 Web 应用程序,它有时会公开一个 SAS URI(下载链接)供用户从我们的 Azure 存储下载文件。

问题在于我无法准确记录下载内容的数量。

我只能假设当我为某个用户生成下载链接时,文件已完全下载。也许不是。

我查看了 Azure 日志,但我认为我无法在其中找到我想要的内容。

有什么方法可以让用户从控制器方法下载文件,并每隔一段时间执行一个回调来保存传输进度,这样我就可以在某个地方记录它并知道哪个用户下载了那么多.

我也在考虑 SignalR。这可以用于此目的吗?

谢谢。

【问题讨论】:

  • 不这么认为。请求完成后,HttpListener 会死掉。
  • 没有。它是由你决定。它可以永远运行(见答案中的无限循环)

标签: c# .net asp.net-mvc azure-storage


【解决方案1】:

问题在于我无法准确记录下载内容的数量。

如果打开Azure storage diagnostics feature,则会记录对blob 的读/写/删除操作,您可以从诊断日志中获取指定blob 的下载(getblob 操作)计数。

此外,如果用户只能从您的 MVC 应用程序下载 blob,您可以在控制器操作中更新并保存下载计数到外部存储中,this SO thread 讨论了类似的问题。如果直接暴露 SAS URI,拥有有效且未过期的 SAS URI 的用户可以在浏览器中输入该 SAS URI 并下载 blob,这样就很难跟踪下载的 blob 的下载次数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-09
    • 1970-01-01
    • 1970-01-01
    • 2021-03-10
    • 1970-01-01
    • 2021-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多