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

  

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

     

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

Nun, wie ein Unterverzeichnis erstellen

  

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

Damit ich Dateien speichern

  

http://veda.blob.core.windows.net/ Dokument / Ordner / 1.txt

War es hilfreich?

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

In Azure Portal haben wir unter Option während Hochladen der Datei:

 image description hier

eingeben

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top