我有一个挑战的头脑。
我有一个在Azure中运行的Web应用程序,在某些时候会公开SAS URI(下载链接),供用户从我们的Azure存储中下载文件。
问题在于我无法跟踪下载内容的确切数量。
我只能假设当我为某个用户制作下载链接时,该文件已完全下载。或许不是。
我查看了Azure日志,但我认为我无法找到我想要的内容。
有没有什么方法可以让用户从控制器方法下载文件,并且每隔一段时间执行一次回调,这将保留传输进度,这样我就可以将其记录到某处并知道哪个用户下载了那么多
我也在想SignalR。这可以用于此目的吗?
感谢。
答案 0 :(得分:0)
问题在于我无法跟踪下载内容的确切数量。
如果启用了Azure storage diagnostics feature,将记录blob上的读/写/删除操作,您可以从诊断日志中获取指定blob的下载(getblob
操作)。
此外,如果用户只能从您的MVC应用程序下载blob,您可以更新&在控制器操作中将下载计数保存在外部存储中,this SO thread讨论了类似的问题。如果您直接公开SAS URI,那么拥有有效且未过期的SAS URI的用户可以在浏览器中输入该SAS URI并下载该blob,将很难跟踪以这种方式下载的blob的下载数量。