Загрузка документов Azure File Share программным путем

Я работаю над проектом, в котором была бы полезна возможность загрузки документов (.pdf) из учетной записи хранилища файлов Azure. Это возможно? В настоящее время я могу только выводить каталоги и пути к содержимому файлов каталогов в виде строк, но не могу получить доступ к файлам по этим путям, используя пространство имен Microsoft.Azure.

Дополнительные сведения: в C#/ASP.NET развертывается как веб-приложение Azure.

Спасибо.

C


person Christopher    schedule 30.05.2018    source источник
comment
Да, эти файлы можно скачать. Вы просто ищете пример кода? Если это так, проверьте это github.com/Azure/azure-storage-net/blob/master/Samples/.   -  person Evandro Paula    schedule 31.05.2018
comment
Есть ли обновление????   -  person Lee Liu    schedule 04.07.2018


Ответы (3)


Да, это возможно.

Вот демо для справки:

My File Share и один файл изображения, как показано ниже:

введите здесь описание изображения

Мой код, как показано ниже:

    public static void DownloadFromFileStorage()
    {
        CloudStorageAccount account = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=leeliublob;AccountKey=OxxxxxxxxQSy2vkvSi/x/e9l9FhLqayXcbxxxxxJ5Wjkly1DsQPYY5dF2JrAVHtBozbJo29ZrrGJA==;EndpointSuffix=core.windows.net");
        CloudFileClient client = account.CreateCloudFileClient();


        //get File Share
        CloudFileShare cloudFileShare = client.GetShareReference("myfile");

        //get the related directory
        CloudFileDirectory root = cloudFileShare.GetRootDirectoryReference();
        CloudFileDirectory dir = root.GetDirectoryReference("Folder1");

        //get the file reference
        CloudFile file = dir.GetFileReference("1.PNG");

        //download file to local disk
        file.DownloadToFile("C:\\Test\\1.PNG", System.IO.FileMode.OpenOrCreate);

    }

Скриншот результата:

введите здесь описание изображения

person Lee Liu    schedule 06.06.2018
comment
Чтобы это работало, нужно ли предварительно настроить файловый ресурс myfile? - person Rahatur; 13.06.2019
comment
я получаю ошибку компиляции: «IListFileItem» не содержит определения для «DownloadToFile», и не может быть найден метод расширения «DownloadToFile», принимающий первый аргумент типа «IListFileItem» (вам не хватает директивы использования или ссылки на сборку?) когда я пытаюсь загрузить в строку файла, есть идеи, почему это так? - person yanivtwin; 24.12.2019

Чтобы ответить yanivtwin, загрузка в файл будет выглядеть так:

file.GetFileReference(1.PNG).DownloadToFile(FolderPath,System.IO.FileMode.OpenOrCreate);

person Sam Zimmerman    schedule 25.09.2020

Самый простой способ — использовать azcopy. Загрузите файл azcopy.exe с сайта здесь Для Windows: запустите cmd и запустите загруженный .exe, перейдя в загруженную папку.

cd <folder-with-azcopy.exe>
azopy.exe

Затем перейдите в свою учетную запись хранения -> в разделе «Настройки» перейдите к «Подпись общего доступа» -> «Создать и получить токен SAS».

Запустите в CMD следующее: токен SAS начинается с ?sig=..., <local-directory-path> — это папка, в которую вы хотите загрузить все (C:/Users/.../download).

azcopy cp 'https://<storage-account-name>.file.core.windows.net/<file-share-name>/<directory-path><SAS-token>' '<local-directory-path>' --recursive=True
person Anirban Saha    schedule 22.12.2020
comment
ОП спрашивал программно - person Nick Turner; 31.12.2020