Доступ к текстовому файлу внутри контроллера MVC с использованием строки SAS, переданной из View - PullRequest
0 голосов
/ 01 июня 2018

Моя учетная запись хранения 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 string

В моем представлении включена возможность разрешить пользователю загружать файл, просто нажав гиперссылку на загрузку.Я знаю, что это то, для чего SAS отлично подходит: он дает пользователю возможность загружать файл из представления (страница клиента).

Разумеется, я должен иметь функцию контроллерасделать то же самое (получить доступ к файлу для возможности чтения, чтобы я мог обработать его содержимое).

Однако на данный момент я думаю просто использовать вместо имени файла и использовать мой класс AzureStorage.чтобы снова получить доступ к файлу (во второй поездке вверх).Но я бы действительно хотел использовать уже назначенный токен SAS, а не изобретать велосипед.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...