使用日志记录回调下载进度?

时间:2017-08-14 18:12:35

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

我有一个挑战的头脑。

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

问题在于我无法跟踪下载内容的确切数量。

我只能假设当我为某个用户制作下载链接时,该文件已完全下载。或许不是。

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

有没有什么方法可以让用户从控制器方法下载文件,并且每隔一段时间执行一次回调,这将保留传输进度,这样我就可以将其记录到某处并知道哪个用户下载了那么多

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

感谢。

1 个答案:

答案 0 :(得分:0)

  

问题在于我无法跟踪下载内容的确切数量。

如果启用了Azure storage diagnostics feature,将记录blob上的读/写/删除操作,您可以从诊断日志中获取指定blob的下载(getblob操作)。

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