Verwenden des Blobspeichers mit iOS

In diesem Artikel wird die Ausführung gängiger Szenarien mit Microsoft Azure Blob Storage demonstriert. Die Beispiele sind in Objective-C geschrieben und greifen auf die Azure-Speicherclientbibliothek für iOSzurück. Die behandelten Szenarien umfassen das Hochladen, Auflisten, Herunterladen und Löschen von Blobs. Weitere Informationen zu Blobs finden Sie im Abschnitt Nächste Schritte . Sie können auch die Beispielapp herunterladen, um eine schnelle Demonstration der Verwendung von Azure Storage in einer iOS-Anwendung zu sehen.

Weitere Informationen zum Blob Storage finden Sie unter Einführung in Azure Blob Storage.

Erstellen eines Azure-Speicherkontos

Ihr erstes Azure-Speicherkonto erstellen Sie am einfachsten im Azure-Portal. Weitere Informationen finden Sie unter Erstellen von Speicherkonten.

Ein Azure-Speicherkonto können Sie auch mit Azure PowerShell, der Azure-Befehlszeilenschnittstelle oder dem Azure Storage-Ressourcenanbieter für .NET erstellen.

Wenn Sie zu diesem Zeitpunkt kein Speicherkonto in Azure erstellen möchten, können Sie auch den Azurite-Speicheremulator zum Ausführen und Testen Ihres Codes in einer lokalen Umgebung verwenden. Weitere Informationen finden Sie unter Verwenden des Azurite-Emulators für lokale Azure Storage-Entwicklung.

Importieren der Azure Storage-iOS-Bibliothek in Ihre Anwendung

Sie können die Azure Storage-iOS-Bibliothek entweder mithilfe von Azure Storage CocoaPod oder durch Importieren der Framework -Datei in Ihre Anwendung importieren. CocoaPod ist die empfohlene Methode, da es die Integration der Bibliothek vereinfacht. Das Importieren der Frameworkdatei für Ihr bestehendes Projekt ist jedoch weniger aufwendig.

Sie benötigen Folgendes, um diese Bibliothek zu verwenden:

  • iOS 8 oder höher
  • Xcode 7 oder höher

CocoaPod

  1. Sofern Sie es noch nicht getan haben, installieren Sie CocoaPods auf Ihrem Computer, indem Sie ein Terminalfenster öffnen und den folgenden Befehl ausführen:

    sudo gem install cocoapods
    
  2. Erstellen Sie als Nächstes im Projektverzeichnis (das Verzeichnis mit Ihrer XCODEPROJ-Datei) eine neue Datei namens Podfile (ohne Erweiterung). Fügen Sie Podfile das Folgende hinzu, und speichern Sie die Datei.

    platform :ios, '8.0'
    
    target 'TargetName' do
      pod 'AZSClient'
    end
    
  3. Navigieren Sie im Terminalfenster zu dem Projektverzeichnis, und führen Sie den folgenden Befehl aus:

    pod install
    
  4. Wenn Ihre XCODEPROJ-Datei in Xcode geöffnet ist, schließen Sie sie. Öffnen Sie im Projektverzeichnis die neu erstellte Projektdatei, die die Erweiterung .xcworkspace erhält. Dies ist die Datei, mit der Sie von jetzt an arbeiten.

Framework

Eine andere Möglichkeit, die Bibliothek zu verwenden, ist das manuelle Erstellen des Frameworks:

  1. Laden Sie zuerst das azure-storage-ios-repoherunter, oder klonen Sie es.
  2. Wechseln Sie zu azure-storage-ios>Lib>Azure Storage-Client-Bibliothek, und öffnen Sie AZSClient.xcodeproj in Xcode.
  3. Ändern Sie oben links in Xcode das aktive Schema von "Azure Storage-Client Library" in "Framework".
  4. Erstellen Sie das Projekt (⌘+B). Dadurch wird eine AZSClient.framework-Datei auf Ihrem Desktop erstellt.

Sie können die Frameworkdatei dann folgendermaßen in Ihre Anwendung importieren:

  1. Erstellen Sie ein neues Projekt, oder öffnen Sie das vorhandene Projekt in Xcode.
  2. Ziehen Sie AZSClient.framework in Ihren Xcode-Projektnavigator.
  3. Wählen Sie Copy items if needed (Elemente kopieren, wenn nötig) aus, und klicken Sie dann auf Add (Hinzufügen).
  4. Klicken Sie im linken Navigationsbereich auf Ihr Projekt, und klicken Sie auf die Registerkarte General (Allgemein) am oberen Rand des Projekteditors.
  5. Klicken Sie unter dem Abschnitt Linked Frameworks und Libraries (Verknüpfte Frameworks und Bibliotheken) auf die Schaltfläche zum Hinzufügen (+).
  6. Suchen Sie in der Liste der bereits bereitgestellten Bibliotheken nach libxml2.2.tbd , und fügen Sie es dem Projekt hinzu.

Importieren der Bibliothek

// Include the following import statement to use blob APIs.
#import <AZSClient/AZSClient.h>

Wenn Sie Swift verwenden, müssen Sie einen Bridging-Header erstellen und <AZSClient/AZSClient.h> importieren:

  1. Erstellen Sie eine Headerdatei Bridging-Header.h, und fügen Sie die oben genannte Import-Anweisung hinzu.
  2. Wechseln Sie zur Registerkarte Buildeinstellungen, und suchen Sie nach Objective-C Bridging Header.
  3. Doppelklicken Sie auf das Feld Objective-C Bridging Header, und fügen Sie den Pfad zu Ihrer Header-Datei hinzu: ProjectName/Bridging-Header.h
  4. Erstellen Sie das Projekt (⌘ + B), um zu prüfen, ob der Bridging-Header von Xcode übernommen wurde.
  5. Sie können die Bibliothek direkt in jeder Swift-Datei verwenden, es besteht keine Notwendigkeit für Import-Anweisungen.

Konfigurieren der Anwendung für den Zugriff auf Azure Storage

Es gibt zwei Möglichkeiten, um Ihre Anwendung für den Zugriff auf die Storage-Dienste zu authentifizieren:

  • Gemeinsam verwendeter Schlüssel: Verwenden Sie den gemeinsam verwendeten Schlüssel nur für Testzwecke.
  • Shared Access Signature (SAS): Verwenden Sie SAS für Produktionsanwendungen.

Gemeinsam verwendeter Schlüssel

Bei der Authentifizierung mit gemeinsam verwendetem Schlüssel nutzt die Anwendung Ihren Kontonamen und Kontoschlüssel, um auf die Storage-Dienste zuzugreifen. Für eine schnelle Demonstration, wie Sie diese Bibliothek verwenden können, wird in diesen ersten Schritten die Authentifizierung mit gemeinsam verwendetem Schlüssel verwendet.

Warnung

Nutzen Sie die Authentifizierung mit gemeinsam verwendetem Schlüssel nur für Testzwecke! Ihr Kontoname und Kontoschlüssel, mit denen Sie vollständigen Lese-/Schreibzugriff auf das zugehörige Storage-Konto erhalten, werden an alle Personen verteilt, die Ihre App herunterladen. Diese Vorgehensweise wird nicht empfohlen, da das Risiko besteht, dass Ihr Schlüssel durch nicht vertrauenswürdige Clients beeinträchtigt werden kann.

Wenn Sie die Authentifizierung mit gemeinsam verwendetem Schlüssel nutzen, erstellen Sie eine Verbindungszeichenfolge. Die Verbindungszeichenfolge besteht aus:

  • dem DefaultEndpointsProtocol – Sie können zwischen HTTP oder HTTPS wählen. Die Verwendung von HTTPS wird jedoch unbedingt empfohlen.
  • dem Kontonamen – der Name Ihres Storage-Kontos
  • dem Kontoschlüssel – navigieren Sie im Azure-Portal zu Ihrem Speicherkonto, und klicken Sie auf das Symbol Schlüssel, um diese Informationen zu erhalten.
  • (Optional) EndpointSuffix – dieser Wert wird für Speicherdienste in Regionen mit anderen Endpunktsuffixen verwendet (etwa Azure China oder Azure Governance).

Hier sehen Sie ein Beispiel einer Verbindungszeichenfolge bei Authentifizierung mit gemeinsam verwendetem Schlüssel:

"DefaultEndpointsProtocol=https;AccountName=your_account_name_here;AccountKey=your_account_key_here"

Shared Access Signatures (SAS)

Die empfohlene Methode für eine mobile Anwendung zum Authentifizieren einer Anforderung durch einen Client bei einem Azure Storage-Dienst ist die Nutzung einer Shared Access Signature (SAS). SAS ermöglicht es Ihnen, dem Client mit einem angegebenen Satz von Berechtigungen für einen bestimmten Zeitraum Zugriff auf eine Ressource zu gewähren. Als Speicherkontobesitzer müssen Sie eine SAS für Ihre mobilen Clients erstellen. Zum Generieren der SAS sollten Sie wahrscheinlich einen separaten Dienst schreiben, der die SAS generiert, die an Ihre Clients verteilt werden. Zu Testzwecken können Sie mit dem Microsoft Azure Storage-Explorer oder mit dem Azure-Portal eine SAS erstellen. Bei der Erstellung der SAS können Sie das Zeitintervall angeben, in dem die SAS gültig ist, sowie die Berechtigungen, die die SAS dem Client erteilt.

Das folgende Beispiel zeigt die Verwendung des Microsoft Azure Storage-Explorers zum Erstellen einer SAS.

  1. Wenn Sie es nicht bereits getan haben, installieren Sie den Microsoft Azure Storage-Explorer

  2. Stellen Sie eine Verbindung mit Ihrem Abonnement her.

  3. Klicken Sie auf das Speicherkonto und auf die Registerkarte „Aktionen“ unten links. Klicken Sie auf „Shared Access Signature abrufen“, um eine „Verbindungszeichenfolge“ für Ihre SAS zu generieren.

  4. Hier ist ein Beispiel für eine SAS-Verbindungszeichenfolge, die Lese- und Schreibberechtigungen auf Dienst-, Container- und Objektebene für den Blobdienst des Speicherkontos gewährt.

    "SharedAccessSignature=sv=2015-04-05&ss=b&srt=sco&sp=rw&se=2016-07-21T18%3A00%3A00Z&sig=3ABdLOJZosCp0o491T%2BqZGKIhafF1nlM3MzESDDD3Gg%3D;BlobEndpoint=https://youraccount.blob.core.windows.net"

Wie Sie sehen, machen Sie den Kontoschlüssel in Ihrer Anwendung nicht verfügbar, wenn Sie eine SAS verwenden. Weitere Informationen zu SAS und bewährten Methoden bei der Verwendung von SAS erhalten Sie unter Shared Access Signatures: Grundlegendes zum SAS-Modell.

Asynchrone Vorgänge

Hinweis

Alle Methoden, die eine Anforderung für den Dienst ausführen, sind asynchrone Vorgänge. In den Codebeispielen werden Sie feststellen, dass diese Methoden einen Abschlusshandler haben. Der Code im Abschlusshandler wird nach Abschluss der Anforderung ausgeführt. Der Code nach dem Abschlusshandler wird während der Anforderung ausgeführt.

Erstellen eines Containers

Jeder Blob in Azure Storage muss sich in einem Container befinden. Das folgende Beispiel zeigt, wie Sie einen Container namens newcontainerin Ihrem Storage-Konto erstellen, wenn er noch nicht vorhanden ist. Wenn Sie einen Namen für den Container auswählen, achten Sie auf die oben genannten Benennungsregeln.

-(void)createContainer{
    NSError *accountCreationError;

    // Create a storage account object from a connection string.
    AZSCloudStorageAccount *account = [AZSCloudStorageAccount accountFromConnectionString:@"DefaultEndpointsProtocol=https;AccountName=your_account_name_here;AccountKey=your_account_key_here" error:&accountCreationError];

    if(accountCreationError){
        NSLog(@"Error in creating account.");
    }

    // Create a blob service client object.
    AZSCloudBlobClient *blobClient = [account getBlobClient];

    // Create a local container object.
    AZSCloudBlobContainer *blobContainer = [blobClient containerReferenceFromName:@"newcontainer"];

    // Create container in your Storage account if the container doesn't already exist
    [blobContainer createContainerIfNotExistsWithCompletionHandler:^(NSError *error, BOOL exists) {
        if (error){
            NSLog(@"Error in creating container.");
        }
    }];
}

Sie können überprüfen, ob dies funktioniert, indem Sie sich vergewissern, dass newcontainer sich im Microsoft Azure Storage-Explorer in der Liste der Container für das Speicherkonto befindet.

Festlegen von Containerberechtigungen

Die Berechtigungen eines Containers werden standardmäßig für den Privatzugriff konfiguriert. Container bieten jedoch einige unterschiedliche Optionen für den Containerzugriff:

  • Privat: Container- und Blobdaten können nur vom Kontobesitzer gelesen werden.
  • Blob: Blob-Daten innerhalb dieses Containers können über anonyme Anforderungen gelesen werden, Containerdaten sind aber nicht verfügbar. Clients können keine Blobs innerhalb des Containers über anonyme Anforderungen aufzählen.
  • Container: Container- und Blobdaten können über anonyme Anforderungen gelesen werden. Clients können Blobs innerhalb des Containers über eine anonyme Anforderung aufzählen, können aber keine Container innerhalb des Speicherkontos aufzählen.

Das folgende Beispiel veranschaulicht das Erstellen eines Containers mit Container-Zugriffsberechtigungen, die allen Benutzern im Internet den öffentlichen, schreibgeschützten Zugriff gewähren:

-(void)createContainerWithPublicAccess{
    NSError *accountCreationError;

    // Create a storage account object from a connection string.
    AZSCloudStorageAccount *account = [AZSCloudStorageAccount accountFromConnectionString:@"DefaultEndpointsProtocol=https;AccountName=your_account_name_here;AccountKey=your_account_key_here" error:&accountCreationError];

    if(accountCreationError){
        NSLog(@"Error in creating account.");
    }

    // Create a blob service client object.
    AZSCloudBlobClient *blobClient = [account getBlobClient];

    // Create a local container object.
    AZSCloudBlobContainer *blobContainer = [blobClient containerReferenceFromName:@"containerpublic"];

    // Create container in your Storage account if the container doesn't already exist
    [blobContainer createContainerIfNotExistsWithAccessType:AZSContainerPublicAccessTypeContainer requestOptions:nil operationContext:nil completionHandler:^(NSError *error, BOOL exists){
        if (error){
            NSLog(@"Error in creating container.");
        }
    }];
}

Hochladen eines Blobs in einen Container

Wie im Abschnitt „Blobdienstkonzepte“ erwähnt, bietet der Blobspeicher drei verschiedene Arten von Blobs: Blockblobs, Anfügeblobs und Seitenblobs. Die iOS-Bibliothek von Azure Storage unterstützt alle drei Arten von Blobs. In den meisten Fällen wird die Verwendung von Blockblobs empfohlen.

Das folgende Beispiel zeigt den Upload eines Blockblobs aus einer NSString. Wenn in diesem Container bereits ein Blob mit demselben Namen vorhanden ist, wird der Inhalt dieses Blobs überschrieben.

-(void)uploadBlobToContainer{
    NSError *accountCreationError;

    // Create a storage account object from a connection string.
    AZSCloudStorageAccount *account = [AZSCloudStorageAccount accountFromConnectionString:@"DefaultEndpointsProtocol=https;AccountName=your_account_name_here;AccountKey=your_account_key_here" error:&accountCreationError];

    if(accountCreationError){
        NSLog(@"Error in creating account.");
    }

    // Create a blob service client object.
    AZSCloudBlobClient *blobClient = [account getBlobClient];

    // Create a local container object.
    AZSCloudBlobContainer *blobContainer = [blobClient containerReferenceFromName:@"containerpublic"];

    [blobContainer createContainerIfNotExistsWithAccessType:AZSContainerPublicAccessTypeContainer requestOptions:nil operationContext:nil completionHandler:^(NSError *error, BOOL exists)
        {
            if (error){
                NSLog(@"Error in creating container.");
            }
            else{
                // Create a local blob object
                AZSCloudBlockBlob *blockBlob = [blobContainer blockBlobReferenceFromName:@"sampleblob"];

                // Upload blob to Storage
                [blockBlob uploadFromText:@"This text will be uploaded to Blob Storage." completionHandler:^(NSError *error) {
                    if (error){
                        NSLog(@"Error in creating blob.");
                    }
                }];
            }
        }];
}

Sie können überprüfen, ob dies funktioniert, indem Sie sich vergewissern, dass der Container containerpublic im Microsoft Azure Storage-Explorer das Blob sampleblob enthält. In diesem Beispiel haben Sie einen öffentlichen Container verwendet, sodass Sie die Funktionsweise der Anwendung auch durch das Aufrufen der Blob-URI überprüfen können:

https://nameofyourstorageaccount.blob.core.windows.net/containerpublic/sampleblob

Neben dem Hochladen eines Blockblobs aus einer NSString gibt es ähnliche Methoden für NSData, NSInputStream oder eine lokale Datei.

Auflisten der Blobs in einem Container

Das folgende Beispiel zeigt, wie alle Blobs in einem Container aufgelistet werden. Achten Sie beim Durchführen dieses Vorgangs auf die folgenden Parameter:

  • ContinuationToken : Das Fortsetzungstoken gibt an, wo der Auflistungsvorgang beginnen soll. Wenn kein Token angegeben wird, listet es Blobs vom Anfang auf. Es kann eine beliebige Anzahl von Blobs aufgeführt werden, von 0 (null) bis zu einem festgelegten Maximum. Auch wenn diese Methode keine Ergebnisse zurückgibt, wenn results.continuationToken nicht Null ist, gibt es möglicherweise mehr Blobs für den Dienst, die nicht aufgelistet wurden.
  • prefix – Sie können das Präfix angeben, das für die Blobliste verwendet werden soll. Nur Blobs, die mit diesem Präfix beginnen, werden aufgelistet.
  • useFlatBlobListing – Wie im Abschnitt Benennen von Containern und Blobs und verweisen auf diese erwähnt, können Sie eine virtuelle Hierarchie durch Benennen von Blobs mit Pfadinformationen erstellen, selbst wenn der Blob-Dienst ein flaches Speicherschema ist. Allerdings wird derzeit die nicht-flache Auflistung nicht unterstützt. Diese Funktion ist in Kürze verfügbar. Bis dahin sollte der folgende Wert verwendet werden: JA.
  • blobListingDetails – Sie können angeben, welche Elemente beim Auflisten der Blobs einbezogen werden sollen.
    • AZSBlobListingDetailsNone: Listen Sie nur zugesicherte Blobs auf, und geben Sie keine Blobmetadaten zurück.
    • AZSBlobListingDetailsSnapshots: Listen Sie zugesicherte Blobs und Blobmomentaufnahmen auf.
    • AZSBlobListingDetailsMetadata: Rufen Sie Blobmetadaten für jedes Blob auf, das in der Liste zurückgegeben wird.
    • AZSBlobListingDetailsUncommittedBlobs: Listen Sie zugesicherte und nicht zugesicherte Blobs auf.
    • AZSBlobListingDetailsCopy: Schließen Sie Kopiereigenschaften in die Liste ein.
    • AZSBlobListingDetailsAll: Listen Sie alle verfügbaren zugesicherten Blobs, nicht zugesicherten Blobs und Momentaufnahmen auf, und geben Sie alle Metadaten und den Kopierstatus für diese Blobs zurück.
  • maxResults – Die maximale Anzahl von Ergebnissen, die für diesen Vorgang zurückgegeben werden. Verwenden Sie -1, um keinen Grenzwert festzulegen.
  • completionHandler – Der auszuführende Codeblock mit den Ergebnissen des Auflistungsvorgangs.

In diesem Beispiel wird eine Hilfsmethode verwendet, um jedes Mal die Methode zum Auflisten von Blobs wiederholt aufzurufen, wenn ein Fortsetzungstoken zurückgegeben wird.

-(void)listBlobsInContainer{
    NSError *accountCreationError;

    // Create a storage account object from a connection string.
    AZSCloudStorageAccount *account = [AZSCloudStorageAccount accountFromConnectionString:@"DefaultEndpointsProtocol=https;AccountName=your_account_name_here;AccountKey=your_account_key_here" error:&accountCreationError];

    if(accountCreationError){
        NSLog(@"Error in creating account.");
    }

    // Create a blob service client object.
    AZSCloudBlobClient *blobClient = [account getBlobClient];

    // Create a local container object.
    AZSCloudBlobContainer *blobContainer = [blobClient containerReferenceFromName:@"containerpublic"];

    //List all blobs in container
    [self listBlobsInContainerHelper:blobContainer continuationToken:nil prefix:nil blobListingDetails:AZSBlobListingDetailsAll maxResults:-1 completionHandler:^(NSError *error) {
        if (error != nil){
            NSLog(@"Error in creating container.");
        }
    }];
}

//List blobs helper method
-(void)listBlobsInContainerHelper:(AZSCloudBlobContainer *)container continuationToken:(AZSContinuationToken *)continuationToken prefix:(NSString *)prefix blobListingDetails:(AZSBlobListingDetails)blobListingDetails maxResults:(NSUInteger)maxResults completionHandler:(void (^)(NSError *))completionHandler
{
    [container listBlobsSegmentedWithContinuationToken:continuationToken prefix:prefix useFlatBlobListing:YES blobListingDetails:blobListingDetails maxResults:maxResults completionHandler:^(NSError *error, AZSBlobResultSegment *results) {
        if (error)
        {
            completionHandler(error);
        }
        else
        {
            for (int i = 0; i < results.blobs.count; i++) {
                NSLog(@"%@",[(AZSCloudBlockBlob *)results.blobs[i] blobName]);
            }
            if (results.continuationToken)
            {
                [self listBlobsInContainerHelper:container continuationToken:results.continuationToken prefix:prefix blobListingDetails:blobListingDetails maxResults:maxResults completionHandler:completionHandler];
            }
            else
            {
                completionHandler(nil);
            }
        }
    }];
}

Herunterladen eines Blobs

Das folgende Beispiel zeigt den Download eines Blobs in ein NSString-Objekt.

-(void)downloadBlobToString{
    NSError *accountCreationError;

    // Create a storage account object from a connection string.
    AZSCloudStorageAccount *account = [AZSCloudStorageAccount accountFromConnectionString:@"DefaultEndpointsProtocol=https;AccountName=your_account_name_here;AccountKey=your_account_key_here" error:&accountCreationError];

    if(accountCreationError){
        NSLog(@"Error in creating account.");
    }

    // Create a blob service client object.
    AZSCloudBlobClient *blobClient = [account getBlobClient];

    // Create a local container object.
    AZSCloudBlobContainer *blobContainer = [blobClient containerReferenceFromName:@"containerpublic"];

    // Create a local blob object
    AZSCloudBlockBlob *blockBlob = [blobContainer blockBlobReferenceFromName:@"sampleblob"];

    // Download blob
    [blockBlob downloadToTextWithCompletionHandler:^(NSError *error, NSString *text) {
        if (error) {
            NSLog(@"Error in downloading blob");
        }
        else{
            NSLog(@"%@",text);
        }
    }];
}

Löschen eines BLOBs

Das folgende Beispiel zeigt den Löschvorgang eines Blobs.

-(void)deleteBlob{
    NSError *accountCreationError;

    // Create a storage account object from a connection string.
    AZSCloudStorageAccount *account = [AZSCloudStorageAccount accountFromConnectionString:@"DefaultEndpointsProtocol=https;AccountName=your_account_name_here;AccountKey=your_account_key_here" error:&accountCreationError];

    if(accountCreationError){
        NSLog(@"Error in creating account.");
    }

    // Create a blob service client object.
    AZSCloudBlobClient *blobClient = [account getBlobClient];

    // Create a local container object.
    AZSCloudBlobContainer *blobContainer = [blobClient containerReferenceFromName:@"containerpublic"];

    // Create a local blob object
    AZSCloudBlockBlob *blockBlob = [blobContainer blockBlobReferenceFromName:@"sampleblob1"];

    // Delete blob
    [blockBlob deleteWithCompletionHandler:^(NSError *error) {
        if (error) {
            NSLog(@"Error in deleting blob.");
        }
    }];
}

Löschen eines Blobcontainers

Das folgende Beispiel zeigt den Löschvorgang eines Containers.

-(void)deleteContainer{
    NSError *accountCreationError;

    // Create a storage account object from a connection string.
    AZSCloudStorageAccount *account = [AZSCloudStorageAccount accountFromConnectionString:@"DefaultEndpointsProtocol=https;AccountName=your_account_name_here;AccountKey=your_account_key_here" error:&accountCreationError];

    if(accountCreationError){
        NSLog(@"Error in creating account.");
    }

    // Create a blob service client object.
    AZSCloudBlobClient *blobClient = [account getBlobClient];

    // Create a local container object.
    AZSCloudBlobContainer *blobContainer = [blobClient containerReferenceFromName:@"containerpublic"];

    // Delete container
    [blobContainer deleteContainerIfExistsWithCompletionHandler:^(NSError *error, BOOL success) {
        if(error){
            NSLog(@"Error in deleting container");
        }
    }];
}

Nächste Schritte

Da Sie jetzt die Verwendung von Blobspeicher in iOS kennen, folgen Sie diesen Links, um weitere Informationen zur iOS-Bibliothek und dem Speicherdienst zu erhalten.

Wenn Sie Fragen zu dieser Bibliothek haben, können Sie diese auf unserer Frageseite von Microsoft Q&A (Fragen und Antworten) oder auf Stack Overflow stellen. Richten Sie Vorschläge für Azure Storage-Features an Feedback zu Azure Storage.