Windows Azure: Wie Unterverzeichnis in einem Blob Container erstellen
-
26-09-2019 - |
Frage
Wie ein Unterverzeichnis in einem Blob Container erstellen
zum Beispiel
in meinem blob Container http://veda.blob.core.windows.net/document /
Wenn ich einige Dateien speichern wird es sein
Nun, wie ein Unterverzeichnis erstellen
Damit ich Dateien speichern
http://veda.blob.core.windows.net/ Dokument / Ordner / 1.txt
Lösung
So fügen Sie auf, was gesagt Egon, einfach erstellen Sie Ihre Blob „Ordner / 1.txt“ genannt, und es wird funktionieren. Keine Notwendigkeit, ein Verzeichnis zu erstellen.
Andere Tipps
Es gibt eigentlich nur eine einzige Schicht von Containern. Sie können praktisch ein „Dateisystem“ wie Schichtspeicher erstellen, aber in Wirklichkeit wird alles in 1 Schicht sein, wobei der Behälter, in dem es ist.
Für ein virtuelles „Dateisystem“ wie Speicher erstellen, können Sie blob Namen haben, die ein ‚/‘ enthalten, so dass Sie, was Sie will mit der Art und Weise zu tun, können Sie speichern. Auch die große Sache ist, dass man für einen Klecks auf einer virtuellen Ebene suchen, indem Sie eine Teilfolge geben, bis zu einem ‚/‘.
Diese 2 Dinge, das Hinzufügen eines ‚/‘ auf einen Pfad und eine Teilfolge für die Suche, erstellen gemeinsam einen virtuellen „Dateisystem“ Speicher.
Es ist ein Kommentar von @ AFR0 zu fragen, wie man Filter auf Ordner ..
Es gibt zwei Möglichkeiten, mit dem GetDirectoryReference
oder Schleife durch einen Container Blobs und die Art zu überprüfen. Der folgende Code ist in 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);
}
}
lesen Sie diese für mehr in die Tiefe und Reichweite: http://www.codeproject.com/Articles/297052/Azure-Storage-Blobs-Service-Working-with-Directori
Wenn Sie Microsoft Azure Storage Explorer verwenden, gibt es ein „Neuer Ordner“ Schaltfläche, die Sie erstellen können Ordner in einem Container. Dies ist eigentlich ein virtueller Ordner:
Wie @Egon oben erwähnt, gibt es keine wirkliche Ordnerverwaltung in BLOB-Speicher.
Sie können einige Funktionen eines Dateisystems erreichen mit ‚/‘ im Dateinamen, aber dies hat viele Einschränkungen (zum Beispiel, was passiert, wenn Sie benötigen einen „Ordner“ umbenennen?).
Als allgemeine Regel gilt, würde ich meine Dateien behalten so flach wie möglich in einem Behälter, und habe meine Anwendung verwalten, was Struktur I an die Endbenutzer verfügbar machen möchten (zB einen verschachtelten Ordner verwalten Struktur in meiner Datenbank , einen Datensatz für jede Datei, die BLOB mit Container-Namen und Dateinamen referenzieren).
Sie brauchen kein Unterverzeichnis zu erstellen. Erstellen Sie einfach Blob-Container und Verwendung Dateinamen wie die Variable Dateiname , wie unten Code:
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
Hier ist, wie ich tue es in Coffeescript auf Node.JS:
blobService.createBlockBlobFromText 'containerName', (path + '$$$.$$$'), '', (err, result)->
if err
console.log 'failed to create path', err
else
console.log 'created path', path, result
Got ähnliches Problem bei dem Versuch, Azure Beispiel first-serverless-App .
Hier ist die Info, wie ich gelöst, indem \ vorne von $ Web.
Hinweis: $ Web-Container wurde automatisch erstellt, während statische Website zu ermöglichen. Nie $ Root-Container irgendwo gesehen.
//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