Подтвердить что ты не робот

Как создать дополнительный контейнер в лазурном хранилище

Как создать дополнительный контейнер в лазурном хранилище.

Пожалуйста, сообщите нам

4b9b3361

Ответ 1

Windows Azure не предоставляет концепцию иерархических контейнеров, но она обеспечивает механизм для прохождения иерархии по соглашениям и API. Все контейнеры хранятся на одном уровне. Вы можете получить уникальную функциональность, используя соглашения об именах для своих имен blob.

Например, вы можете создать контейнер с именем "content" и создать в этом контейнере капли со следующими именами:

content/blue/images/logo.jpg
content/blue/images/icon-start.jpg
content/blue/images/icon-stop.jpg

content/red/images/logo.jpg
content/red/images/icon-start.jpg
content/red/images/icon-stop.jpg

Примечание, что эти капли - это плоский список против вашего контейнера контента. Тем не менее, используя "/" в качестве обычного разделителя, вы предоставляете функциональность, чтобы пройти их по иерархическому принципу.

protected IEnumerable<IListBlobItem> 
          GetDirectoryList(string directoryName, string subDirectoryName)
{
    CloudStorageAccount account =
        CloudStorageAccount.FromConfigurationSetting("DataConnectionString");
    CloudBlobClient client = 
        account.CreateCloudBlobClient();
    CloudBlobDirectory directory = 
        client.GetBlobDirectoryReference(directoryName); 
    CloudBlobDirectory subDirectory = 
        directory.GetSubdirectory(subDirectoryName); 

    return subDirectory.ListBlobs();
}

Затем вы можете вызвать это следующим образом:

GetDirectoryList("content/blue", "images")

Примечание использование GetBlobDirectoryReference и GetSubDirectory и тип CloudBlobDirectory вместо CloudBlobContainer. Они обеспечивают функциональность прохождения, которую вы, вероятно, ищете.

Это поможет вам начать работу. Дайте мне знать, если это не ответит на ваш вопрос:

[Благодаря Neil Mackenzie для вдохновения]

Ответ 2

Вы имеете в виду хранилище blob? Если это так, иерархия - это просто StorageAccount/Container/BlobName. Вложенных контейнеров нет.

Сказав это, вы можете использовать косые черты в своем имени blob для имитации вложенных контейнеров в URI. См. эту статью в MSDN для получения информации об именах.

Ответ 3

Я общаюсь с тобой, и я хочу добавить что-то в эту ситуацию, потому что я тоже Мне также нужно загрузить мои игры html в Azure Storage с созданием этих каталогов:

  • Игры \Beautyshop\index.html
  • Игры\Beautyshop\активы\apple.png
  • Игры\Beautyshop\активы\aromas.png
  • Игры \Beautyshop\customfont.css
  • Игры \Beautyshop\jquery.js

Итак, после ваших рекомендаций я попытался загрузить мой контент с помощью инструмента Azure Storage Explorer, и вы можете скачать инструмент и исходный код с помощью этого URL: Azure Storage Проводник

Прежде всего, я попытался загрузить через инструмент, но он не позволяет загружать иерархическую директорию, потому что вам не нужно: Как создать подкаталог в контейнере blob

Наконец, я отлаживаю исходный код Azure Storage Explorer, и я редактировал метод Background_UploadBlobs и поле UploadFileList в файле StorageAccountViewModel.cs. Вы можете отредактировать его, что вы хотите. Возможно, вы сделали орфографические ошибки:/Мне очень жаль, но это только мое рекомендую.

Ответ 4

Чтобы создать подпапку в контейнере, при загрузке файла вы можете перейти в "Дополнительные параметры" и выбрать "Загрузить в папку", которая создаст новую папку в контейнере и загрузит файл в нее.

Ответ 5

Пример кода

string myfolder = "<folderName>";
string myfilename = "<fileName>";
string fileName = String.Format("{0}/{1}.csv", myfolder, myfilename);
CloudBlockBlob blob = container.GetBlockBlobReference(fileName);