Jak utworzyć podkatalog w kontenerze obiektów blob
na przykład,
w moim kontenerze obiektów blob http://veda.blob.core.windows.net/document/
Jeśli przechowuję jakieś pliki, to będzie
Teraz, jak utworzyć podkatalog
Żeby móc przechowywać pliki
Jak utworzyć podkatalog w kontenerze obiektów blob
na przykład,
w moim kontenerze obiektów blob http://veda.blob.core.windows.net/document/
Jeśli przechowuję jakieś pliki, to będzie
Teraz, jak utworzyć podkatalog
Żeby móc przechowywać pliki
Aby dodać coś do tego, co powiedział Egon, po prostu utwórz swój obiekt blob o nazwie „folder / 1.txt” i będzie działać. Nie ma potrzeby tworzenia katalogu.
W rzeczywistości jest tylko jedna warstwa pojemników. Możesz wirtualnie stworzyć „system plików”, taki jak wielowarstwowy magazyn danych, ale w rzeczywistości wszystko będzie w 1 warstwie, w kontenerze, w którym się znajduje.
Aby utworzyć wirtualny „system plików”, taki jak magazyn, możesz mieć nazwy obiektów blob zawierające znak „/”, dzięki czemu możesz robić, co chcesz, ze sposobem przechowywania. Wspaniałą rzeczą jest również to, że możesz szukać obiektu blob na poziomie wirtualnym, podając częściowy ciąg, aż do „/”.
Te dwie rzeczy, dodanie „/” do ścieżki i częściowego ciągu do wyszukiwania, razem tworzą wirtualną pamięć „systemu plików”.
źródło
@ Afr0 zawiera komentarz z pytaniem, jak filtrować foldery.
Istnieją dwa sposoby użycia
GetDirectoryReference
pętli lub przechodzenia przez obiekty blob kontenerów 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); } }
przeczytaj to, aby uzyskać bardziej szczegółowe informacje: http://www.codeproject.com/Articles/297052/Azure-Storage-Blobs-Service-Working-with-Directori
źródło
W portalu Azure mamy poniżej opcję podczas wgrywania pliku:
źródło
Jeśli używasz Eksploratora usługi Microsoft Azure Storage , dostępny jest przycisk „Nowy folder”, który umożliwia utworzenie folderu w kontenerze. W rzeczywistości jest to folder wirtualny:
źródło
Nie musisz tworzyć podkatalogów. Wystarczy utworzyć pojemnik blob i nazwę pliku Zastosowanie takiego zmiennej nazwy pliku jak poniżej kodu:
string filename = "document/tech/user-guide.pdf"; CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(ConnectionString); CloudBlockBlob blob = cloudBlobContainer.GetBlockBlobReference(filename); blob.StreamWriteSizeInBytes = 20 * 1024; blob.UploadFromStream(fileStream); // fileStream is System.IO.Stream
źródło
Jak wspomniano powyżej @Egon, w magazynie BLOB nie ma prawdziwego zarządzania folderami.
Niektóre funkcje systemu plików można osiągnąć, używając znaku „/” w nazwie pliku, ale ma to wiele ograniczeń (na przykład, co się stanie, jeśli konieczna będzie zmiana nazwy „folderu”?).
Generalnie chciałbym trzymać moje pliki w kontenerze tak płasko, jak to tylko możliwe , a moja aplikacja zarządzałaby dowolną strukturą, którą chcę udostępnić użytkownikom końcowym (na przykład zarządzać zagnieżdżoną strukturą folderów w mojej bazie danych , mieć rekord dla każdego plik, odwołując się do BLOB przy użyciu nazwy kontenera i nazwy pliku).
źródło
Wystąpił podobny problem podczas wypróbowywania pierwszej aplikacji bezserwerowej Azure Sample .
Oto informacje o tym, jak rozwiązałem problem, usuwając \ na początku strony $ web.
Uwaga: kontener sieciowy $ został utworzony automatycznie przy włączonej statycznej witrynie internetowej. Nigdy nie widziałem kontenera $ root.
//getting Invalid URI error while following tutorial as-is az storage blob upload-batch -s . -d \$web --account-name firststgaccount01 //Remove "\" @destination param az storage blob upload-batch -s . -d $web --account-name firststgaccount01
źródło
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
źródło
C#