2010-04-11 8 views
48

Jak utworzyć podkatalogu w pojemniku blobWindows Azure: Jak utworzyć podkatalogu w pojemniku blob

np

w moim blob pojemnika http://veda.blob.core.windows.net/document/

Gdybym przechowywać niektóre pliki będzie

http://veda.blob.core.windows.net/document/1.txt

http://veda.blob.core.windows.net/document/2.txt

Teraz, jak stworzyć podkatalogu

http://veda.blob.core.windows.net/document/folder/

tak, że można przechowywać pliki

http://veda.blob.core.windows.net/document/folder/1.txt

Odpowiedz

73

Aby dodać do tego, co powiedział Egon, po prostu utwórz swój obiekt typu blob o nazwie "folder/1.txt", który zadziała. Nie trzeba tworzyć katalogu.

+2

jak filtrować lub uzyskać wszystkie te pliki z "folderu"? – afr0

+1

czytaj poniżej odpowiedź @ afr0 – AntonB

+0

To nie działa dla mnie, mówi kontenery nie może używać niczego poza małymi literami, myślnikami, cyframi. Taki sam dla nazw plików –

24

W rzeczywistości istnieje tylko jedna warstwa kontenerów. Możesz wirtualnie stworzyć "system plików", jak warstwowy magazyn, ale w rzeczywistości wszystko będzie w 1 warstwie, w pojemniku, w którym się znajduje.

Do tworzenia wirtualnego "systemu plików", takiego jak pamięć masowa, możesz mieć nazwy kropli zawierające znak "/", dzięki czemu możesz robić, co chcesz, ze sposobem przechowywania. Wspaniałą rzeczą jest to, że możesz wyszukać obiekt typu blob na wirtualnym poziomie, podając częściowy ciąg znaków, aż do znaku "/".

Te 2 rzeczy, dodając "/" do ścieżki i częściowy ciąg do wyszukiwania, razem tworzą wirtualny magazyn "systemu plików".

+0

można udostępnić próbkę C#? blob.Nazwa jest własnością tylko do odczytu, więc nie jesteśmy w stanie stworzyć blob.Nazwa "/" – ABB

13

Jest komentarz @ afr0 pytaniem, jak filtrować foldery ..

Istnieją dwa sposoby wykorzystujące GetDirectoryReference lub przelotowego pojemnikach bąble i sprawdzania typu. Poniższy kod jest w C#

CloudBlobContainer container = blobClient.GetContainerReference("photos"); 

//Method 1. grab a folder reference directly from the container 
CloudBlobDirectory folder = container.GetDirectoryReference("directoryName"); 

//Method 2. Loop over container and grab folders. 
foreach (IListBlobItem item in container.ListBlobs(null, false)) 
{ 
    if (item.GetType() == typeof(CloudBlobDirectory)) 
    { 
     // we know this is a sub directory now 
     CloudBlobDirectory subFolder = (CloudBlobDirectory)item; 

     Console.WriteLine("Directory: {0}", subFolder.Uri); 
    } 
} 

przeczytać więcej w zasięgu głębokości: http://www.codeproject.com/Articles/297052/Azure-Storage-Blobs-Service-Working-with-Directori

+1

To powinna być odpowiedź od dzisiejszej daty. +1 – MickyD

0

Oto jak to zrobić w coffeescript na node.js:

blobService.createBlockBlobFromText 'containerName', (path + '$$$.$$$'), '', (err, result)-> 
    if err 
     console.log 'failed to create path', err 
    else 
     console.log 'created path', path, result 
2

Jeśli używasz Microsoft Azure Storage Explorer, istnieje przycisk "Nowy folder", który umożliwia utworzenie folderu w kontenerze. Właściwie jest to folder wirtualny:

enter image description here

3

W Azure portalu mamy poniżej opcji podczas przesyłania pliku:

enter image description here

Powiązane problemy