2017-02-08 3 views
0

Я хочу создать следующую структуру папок на Azure:Создание папки с помощью Azure Storage Rest API без создания файла Капля по умолчанию

mycontainer 
    -images 
     --2007 
      ---img001.jpg 
      ---img002.jpg 

Теперь, один из способов заключается в использовании PUT запрос Blob и загрузить img001.jpg уточнением весь путь, как

PUT "MyContainer/изображений/2007/img001.jpg"

Но я хочу, чтобы сначала создать папки images и 2007, а затем в другом запросе загрузите blob img001.jpg.

Прямо сейчас, когда я пытался делать это, используя PUT BLOB запрос:

StringToSign:

PUT 











x-ms-blob-type:BlockBlob 
x-ms-date:Tue, 07 Feb 2017 23:35:12 GMT 
x-ms-version:2016-05-31 
/account/mycontainer/images/ 

HTTP URL

sun.net.www.protocol.http.HttpURLConnection:http://account.blob.core.windows.net/mycontainer/images/ 

Создает папку, но ее не пусто. По умолчанию его создание пустого файла blob без имени.

Теперь многие говорят, что мы не можем создать пустую папку. Но почему же мы можем сделать это, используя портал azure, поскольку браузер должен отправлять какой-либо запрос на отдых для создания папки.

Я думаю, что он должен что-то сделать с Content-Type i.e. x-ms-blob-content-type, который должен быть указан для того, чтобы сказать azure, что его папка не является блобом. Но, я смущен.

ответ

1

Это невозможно - структура папок является виртуальной.

См. Get started with Azure Blob storage using .NET. Вы можете создать контейнер, а все остальное, содержащееся в этом контейнере, - это blob.

Выдержки:

Как показано выше, вы можете назвать сгустки с информацией о пути в их имен. Это создает структуру виртуального каталога, которую вы можете организовать и перемещать, как вы бы в традиционной файловой системе: . Примечание , что структура каталогов является только виртуальной - единственными ресурсами, доступными в хранилище Blob, являются контейнеры и капли.

+0

Но, в амазонке, я могу это сделать. Почему это вызывает проблемы в Azure? –

+1

Последнее, что я проверил с S3, также имеет 2 уровня иерархии: Bucket & Objects. На стороне примечания, если вам действительно нужна настоящая папка, такая как структура, вы также можете посмотреть в Azure File Service. Там вы можете создать каталог без какого-либо содержимого. –

+0

@GauravMantri Вы можете указать путь с косой чертой в амазонке, чтобы создать пустую папку типа "images /" –

1

Я хочу сначала создать папки изображений и 2007, а затем в другом запросе загрузить блоб img001.jpg

Я согласен с Брендан Грин, в настоящее время, Azure хранения BLOB только позволит нам для создания виртуальной структуры каталогов путем присвоения имени блокам с информацией о пути в их именах.

Я думаю, что он должен что-то сделать с Content-Type i.e. x-ms-blob-content-type, который должен быть указан для того, чтобы сказать azure, что его папка не является блобом. Но я смущен.

Вы можете проверить the description of Request Headers, которые могут быть установлены для Put Blob работы и вы увидите, что не поддерживает создание пустой папки, указав некоторые заголовки запроса.

Кроме того, как сказал Гаурав Мантри, если вы действительно хотите создать пустую структуру папок без содержимого, вы можете попытаться использовать Azure File storage, а также дать нам use REST API to access Azure File storage. И облако операций Create Directory используется для создания нового каталога под указанным общим или родительским каталогом.

PUT https://myaccount.file.core.windows.net/myshare/myparentdirectorypath/mydirectory?restype=directory