Tworzenie pojemnika podrzędnego w miejscu przechowywania lazuru.Tworzenie pojemnika podrzędnego w lokalizacji przechowywania niebieskiego
Daj nam znać
Tworzenie pojemnika podrzędnego w miejscu przechowywania lazuru.Tworzenie pojemnika podrzędnego w lokalizacji przechowywania niebieskiego
Daj nam znać
Windows Azure nie dostarcza pojęcia kontenerów heirarchicznych, ale zapewnia mechanizm przechodzenia heirarchii przez konwencję i API. Wszystkie pojemniki są przechowywane na tym samym poziomie. Możesz uzyskać prostą funkcjonalność, używając konwencji nazewnictwa dla nazw swoich obiektów blob.
Na przykład, można utworzyć kontener o nazwie „zawartość” i tworzyć plamy z następującymi nazwami w tym pojemniku:
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
Uwaga, że te plamy są płaskie lista przeciw „content” kontenerze . To powiedziawszy, użycie "/" jako tradycyjnego separatora zapewnia funkcjonalność do przechodzenia przez nie w sposób heirarchiczny.
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();
}
Następnie można nazwać to w następujący sposób:
GetDirectoryList("content/blue", "images")
Uwaga wykorzystanie GetBlobDirectoryReference i GetSubDirectory metod i typ CloudBlobDirectory zamiast CloudBlobContainer. Zapewniają one funkcjonalność przejścia, której prawdopodobnie szukasz.
To powinno pomóc w rozpoczęciu pracy. Daj mi znać, jeśli to nie jest odpowiedź na pytanie:
[Dzięki Neil Mackenzie inspiracji]
Czy odnosisz się do magazynu blob? Jeśli tak, hierarchia to po prostu StorageAccount/Container/BlobName. Nie ma zagnieżdżonych kontenerów.
Powiedziawszy to, możesz użyć ukośników w nazwie blobu do symulowania zagnieżdżonych kontenerów w identyfikatorze URI. Zobacz this article on MSDN, aby poznać szczegóły nazywania.
I aggree z tobint odpowiedź i chcę coś dodać tę sytuację, bo też muszę sam sposób przesyłania moje gry HTML na Azure Storage z tworzenia tych katalogów:
Więc Po zaleca Próbowałem przesłać moje treści z narzędziem, które jest Azure Storage Explorer można pobrać narzędzie i kodu źródłowego z adresem URL: Azure Storage Explorer
Przede wszystkim starałem się przekazać za pośrednictwem narzędzia ale nie pozwala na hierarchiczne przesyłanie katalogów, ponieważ nie potrzebujesz: How to create sub directory in a blob container
Wreszcie, debuguję kod źródłowy Azure Storage Explorer i edytowałem metodę Background_UploadBlobs i UploadFileList w pliku StorageAccountViewModel.cs. Możesz edytować to, co chcesz. Może popełniłem błędy w pisowni:/Bardzo mi przykro, ale to tylko moja rekomendacja.
Przykładowy kod
string myfolder = "<folderName>";
string myfilename = "<fileName>";
string fileName = String.Format("{0}/{1}.csv", myfolder, myfilename);
CloudBlockBlob blob = container.GetBlockBlobReference(fileName);
Należy pamiętać, że od wersji 2.0 SDK 'GetBlobDirectoryReference' bit nie działa. Zamiast tego, możemy wykorzystać następujące: 'pojemnik CloudBlobContainer = cloudBlobClient.GetContainerReference (NazwaKatalogu)' 'CloudBlobDirectory podkatalogu = container.GetDirectoryReference (subDirectoryName);' etc ... – Knelis
istnieje implementacja PHP tej koncepcji? –
Czy ma to być 'cloudBlobClient' lub' client' w wywołaniach funkcji? – juunas