2017-02-06 3 views
0

Я хочу создать папку, используя azure blob rest api, а также хочет проверить, существует ли папка.Azure Rest API. Как создать папку и проверить, существует ли папка?

Hierarchy: 

arjun/images/ 
arjun/Videos/001.avi 
arjun/Vidos/002.avi 
img001.jpg 

Я попытался отправить запрос PUT, чтобы создать папку с пути , например "arjun/images/":

  1. Это создает папку, но ее не пусто.
  2. Создает пустой файл без имени внутри папки.

Теперь, даже если это правильно другая проблема, когда я хочу, чтобы проверить, существует ли папка:

  1. Посылаю список блоб вызов с префиксом, как путь к папке.
  2. Теперь проблема заключается в дискриминации между пустой папкой и папкой, которая не существует, потому что, если запрос сформирован правильно, он всегда будет 200 Ok message с Blob element empty.

Таким образом, не удается определить, существует ли папка или нет.

т.е. запрос списка блоб с префиксом "arjun/xyz/" и "arjun/images/ как будет успешным, но будет иметь тело ответа пусто, как и не любое содержимое. Но на самом деле первая папка xyz не существует , а вторая папка существует, но пустая.

+0

Я смущен: это '' arjun'' имя контейнера, или это ваше имя учетной записи блобера? Помните, что * нет папок * - только контейнеров. –

ответ

2

Услуга Blob основана на плоской схеме хранения, а не иерархической схеме.

Источник: Blob Names

Это ясно указывает на то, что есть на самом деле нет иерархии папок для Azure Storage Blob и «папка» просто виртуальный каталог для создания виртуальной иерархии.

Кроме того, если вы пытаетесь использовать Microsoft Storage Explorer для создания виртуального каталога, это также указывает на то, что виртуальный каталог не существует до тех пор, пока вы не поместили в него blob, что делает префект понятным, поскольку виртуальный каталог на самом деле это всего лишь часть названия blob.

В заключение, виртуальный каталог не существует, если вы «создаете» его, не загружая в него никакой капли.

enter image description here

+0

Пример действительно помог. Пометить это как принято. Я думаю, что ты прав, меня смутила Амазонка. –

+0

Рад, что это помогает, добро пожаловать – juvchan

2

Как Дэвид Макогон и juvchan отметил, что не существует никакой иерархии папок для Azure Blob хранения. Если в «папке» нет blob, это то же самое, что «папка» не существует. Если в «папке» есть «капли», мы можем получить список blob-счетчиков из тела ответа API-интерфейса List blobs.Поэтому нам не нужно беспокоиться о том, что папка не существует или пуста, они оба означают, что она не существует.