Моя учетная запись хранения Azure содержит текстовые файлы, хранящиеся в общей папке.
В представлении пользователь выбирает файл для «обработки», и моя подпрограмма JavaScript передает sas (.accessibleUri) доФункция контроллера (т.е. функция ProcessDataFile).
Функция контроллера извлекает sas из запроса (Request.Url.Query).
Так как мне открыть и прочитать файл в функции контроллерачтобы я мог обработать его содержимое?Я пытался:
Dim file As New CloudFile(New Uri(fileSasUri(1)))
ViewBag.ShowMe = file.DownloadText()
Это, однако, вызывает исключение:
ErrorMessage Microsoft.WindowsAzure.Storage.StorageException: удаленный сервер возвратил ошибку: (404)Не обнаружена.---> System.Net.WebException: удаленный сервер возвратил ошибку: (404) Not Found.в System.Net.HttpWebRequest.GetResponse () в Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync [T] (RESTCommand`1 cmd, политика IRetryPolicy, OperationContext operationContext) --- Конец внутренней трассировки стека исключений
Вот САС.Обратите внимание, что последнее - это потому, что я хотел убедиться, что не было проблем с пробелами, спереди или сзади строки.
В моем представлении включена возможность разрешить пользователю загружать файл, просто нажав гиперссылку на загрузку.Я знаю, что это то, для чего SAS отлично подходит: он дает пользователю возможность загружать файл из представления (страница клиента).
Разумеется, я должен иметь функцию контроллерасделать то же самое (получить доступ к файлу для возможности чтения, чтобы я мог обработать его содержимое).
Однако на данный момент я думаю просто использовать вместо имени файла и использовать мой класс AzureStorage.чтобы снова получить доступ к файлу (во второй поездке вверх).Но я бы действительно хотел использовать уже назначенный токен SAS, а не изобретать велосипед.