我的Azure存储帐户具有存储在文件共享中的文本文件。
在视图中,用户选择“处理”文件,我的JavaScript例程将sas(.accessibleUri)传递给Controller函数(即Function ProcessDataFile)。
Controller函数从查询中获取sas(Request.Url.Query)。
那么如何在Controller函数中打开和读取文件,以便我可以处理它的内容?我试过了:
Dim file As New CloudFile(New Uri(fileSasUri(1)))
ViewBag.ShowMe = file.DownloadText()
然而,这引发了一个例外:
的ErrorMessage Microsoft.WindowsAzure.Storage.StorageException:远程服务器返回错误:(404)Not Found。 ---> System.Net.WebException:远程服务器返回错误:(404)Not Found。 at System.Net.HttpWebRequest.GetResponse()at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync [T](RESTCommand`1 cmd,IRetryPolicy policy,OperationContext operationContext)---内部异常堆栈跟踪结束
这是SAS。注意最后的'是因为我想确保没有空格问题,字符串的正面或背面。
我的视图中包含允许用户下载文件的功能,只需单击“下载”超链接即可。我知道这就是SAS的优点:它使用户能够从View(客户端页面)下载文件。
按理说我应该能够让Controller函数执行相同的操作(访问文件以获取读取功能,以便我可以处理它的内容)。
然而,在这一点上,我正在考虑简单地使用文件名,而是使用我的AzureStorage类来重新访问该文件(在第二次旅行时)。但我真的很想使用已经分配的SAS令牌,而不是重新发明轮子。