2017-02-08 2 views
0

ich auf Azure folgende Ordnerstruktur erstellen möchten:Erstellen eines Ordners API Azure Storage Erholung ohne Verwendung einer Standard-Blob-Datei erstellen

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

nun ein Weg ist, Blob Anfrage zum Einsatz und img001.jpg Spezifizierungs laden der ganze Weg als

PUT "MyContainer/images/2007/img001.jpg"

Aber, ich möchte zunächst die Ordner erstellen images und 2007 und dann in einer anderen Anfrage den Blob img001.jpg hochladen.

Gerade jetzt, als ich versuchte, dies mit PUT BLOB Anfrage zu tun:

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/ 

Es erstellt einen Ordner, aber es ist nicht leer. Standardmäßig wird eine leere Blob-Datei ohne Namen erstellt ( ).

Jetzt sagen viele Leute, wir können keinen leeren Ordner erstellen. Aber dann, wie kommt es, können wir es mit dem azurblauen Portal machen, da der Browser eine Art Ruheanforderung senden muss, um den Ordner zu erstellen.

Ich denke, es hat etwas mit Content-Type zu tun, d. H. x-ms-blob-content-type, die angegeben werden sollte, um azurblau zu sagen, dass es ein Ordner kein Blob ist. Aber ich bin verwirrt.

Antwort

1

Dies ist nicht möglich - die Ordnerstruktur ist nur virtuell.

Siehe Get started with Azure Blob storage using .NET. Sie können nur einen Container erstellen und alles, was in diesem Container gespeichert ist, ist ein Blob.

Auszug:

Wie oben gezeigt, Sie Blobs mit Pfadinformationen in ihren Namen nennen können. Dies erstellt eine virtuelle Verzeichnisstruktur, die Sie wie ein herkömmliches Dateisystem organisieren und durchlaufen können. Hinweis , dass die Verzeichnisstruktur nur virtuell ist - die einzigen im Blob-Speicher verfügbaren Ressourcen sind Container und Blobs.

+0

Aber bei Amazon, ich bin, es tun können. Warum verursacht es Probleme in Azure? –

+1

Zuletzt habe ich mit S3 überprüft, es hat auch 2 Level-Hierarchie: Eimer & Objekte. Wenn Sie eine echte ordnerähnliche Struktur benötigen, sollten Sie sich auch den Azure File Service ansehen. Dort können Sie ein Verzeichnis ohne Inhalt erstellen. –

+0

@GauravMantri Sie können Pfad mit Schrägstrich in Amazon geben, um einen leeren Ordner wie "images /" zu erstellen –

1

Ich möchte zunächst die Ordner Bilder erstellen und 2007 und dann in einer anderen Anfrage laden das Blob img001.jpg

ich mit Brendan Green einverstanden sind, zur Zeit, Azure Blob Speicher ermöglichen uns einfach Erstellen einer virtuellen Verzeichnisstruktur durch Benennen von Blobs mit Pfadinformationen in ihren Namen.

Ich denke, es hat etwas mit Content-Type zu tun, d. H. X-ms-blob-content-type, der angegeben werden sollte, um azur zu sagen, dass es ein Ordner kein Blob ist. Aber ich bin verwirrt.

Sie könnten the description of Request Headers überprüfen, die für Put Blob Betrieb gesetzt werden kann, und Sie werden es nicht einen leeren Ordner erstellen, indem die Angabe einige Request-Header nicht unterstützt.

Außerdem, wie Gaurav Mantri sagte, wenn Sie wirklich eine leere Ordnerstruktur ohne Inhalt erstellen möchten, könnten Sie versuchen, Azure File storage zu verwenden, und es ermöglicht uns auch use REST API to access Azure File storage. Und die Betriebs-Cloud Create Directory wird verwendet, um ein neues Verzeichnis unter dem angegebenen Freigabe- oder übergeordneten Verzeichnis zu erstellen.

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

Verwandte Themen