internal bool DeleteBlob(string blobName) { BlobContainer container = GetContainer(); try { return(container.DeleteBlob(blobName)); } catch (StorageException se) { Log.Write(EventKind.Error, "Error deleting blob {0}: {1}", ContainerUrl + _PathSeparator + blobName, se.Message); throw; } }
public ActionResult Delete(Guid id, string confirmButton) { Video vid = _videoRepository.GetById(id); if (null == vid) { return(View("NotFound")); } //Should also delete the physical file on the server BlobContainer container = AzureUtility.GetAzureContainer(vid.Path); container.DeleteBlob(vid.Path.Substring(vid.Path.IndexOf("/") + 1)); _videoRepository.Delete(vid); _videoRepository.Save(); return(View("Deleted")); }
public bool DeleteBlob(string containerName, string blobName) { BlobContainer container = BlobStorageType.GetBlobContainer(containerName); return(container.DeleteBlob(blobName)); }
internal static void RunSamples() { StorageAccountInfo account = StorageAccountInfo.GetDefaultBlobStorageAccountFromConfiguration(); string containerName = StorageAccountInfo.GetConfigurationSetting("ContainerName", null, true); NameValueCollection containerMetadata = new NameValueCollection(); containerMetadata.Add("Name", "StorageSample"); BlobStorage blobStorage = BlobStorage.Create(account); blobStorage.RetryPolicy = RetryPolicies.RetryN(2, TimeSpan.FromMilliseconds(100)); try { BlobContainer container = blobStorage.GetBlobContainer(containerName); //Create the container if it does not exist. container.CreateContainer(containerMetadata, ContainerAccessControl.Private); ContainerProperties containerProperties = container.GetContainerProperties(); Console.WriteLine("Container {0} LastModified {1} ETag {2} Metadata {3}", containerProperties.Name, containerProperties.LastModifiedTime, containerProperties.ETag, StringBlob.MetadataToString(containerProperties.Metadata) ); ContainerAccessControl acl = container.GetContainerAccessControl(); Console.WriteLine("Container has access control {0}", acl); // write some text blobs NameValueCollection nv1 = new NameValueCollection(); nv1["m1"] = "v1"; nv1["m2"] = "v2"; StringBlob hello1 = new StringBlob("hello.txt", "Hello World"); hello1.Blob.Metadata = nv1; Console.WriteLine("Creating blob hello.txt"); PutTextBlob(container, hello1); BlobProperties prop = container.GetBlobProperties("hello.txt"); Console.WriteLine("hello.txt content length = " + prop.ContentLength); StringBlob goodbye1 = new StringBlob("goodbye.txt", "Goodbye world"); Console.WriteLine("Creating blob goodbye.txt"); PutTextBlob(container, goodbye1); // read back the blobs Console.WriteLine("Getting hello.txt and goodbye.txt"); StringBlob hello2 = GetTextBlob(container, "hello.txt"); Console.WriteLine("hello.txt: " + hello2.ToString()); StringBlob goodbye2 = GetTextBlob(container, "goodbye.txt"); Console.WriteLine("goodbye.txt " + goodbye2.ToString()); //Try to get a blob that does not exist try { GetTextBlob(container, "noSuchBlob"); } catch (StorageClientException sce) { //The extended error information when present provides more specific and detailed information // about the cause of the error. Console.WriteLine( "Error attempting to get blob 'noSuchBlob' Error Code = {0} Message = {1}", sce.ExtendedErrorInformation != null ? sce.ExtendedErrorInformation.ErrorCode : sce.ErrorCode.ToString(), sce.Message ); } //update metadata of hello.txt hello2.Blob.Metadata["m3"] = "v3"; Console.WriteLine("Updating metadata of hello.txt"); container.UpdateBlobMetadata(hello2.Blob); hello2.Blob.Metadata["m4"] = "v4"; container.UpdateBlobMetadataIfNotModified(hello2.Blob); //Refresh hello.txt. It has changed. bool refreshed = RefreshTextBlob(container, hello1); if (refreshed) { Console.WriteLine("hello.txt refreshed " + hello1.ToString()); } else { Console.WriteLine("hello.txt not refreshed"); } Console.WriteLine("Uploading a large blob"); PutLargeString( container, new StringBlob("LargeBlob.txt", "Let us repeat this string a large number of times "), 50000 ); Console.WriteLine("Downloading large blob to file LargeBlob.txt"); DownloadToFile(container, "LargeBlob.txt", "LargeBlob.txt"); //Refresh hello.txt. It hasn't changed. refreshed = RefreshTextBlob(container, hello2); if (refreshed) { Console.WriteLine("hello.txt refreshed " + hello2.ToString()); } else { Console.WriteLine("hello.txt not refreshed"); } //Change goodbye.txt and refresh it StringBlob goodbye3 = new StringBlob("goodbye.txt", "Goodbye again world"); PutTextBlob(container, goodbye3); //Now refresh the other reference to goodbye.txt (goodbye2) refreshed = RefreshTextBlob(container, goodbye2); if (refreshed) { Console.WriteLine("goodbye.txt refreshed " + goodbye2.ToString()); } else { Console.WriteLine("goodbye.txt not refreshed"); } //Update hello.txt hello2.Value = "Hello again world"; bool updated = UpdateTextBlob(container, hello2); if (updated) { Console.WriteLine("hello.txt updated " + hello2.ToString()); } else { Console.WriteLine("hello.txt not updated because it has been changed"); } //Try to update goodbye.txt through goodbye1. //This should fail because it has been updated thru goodbye3 goodbye1.Value = "Farewell world"; updated = UpdateTextBlob(container, goodbye1); if (updated) { Console.WriteLine("goodbye.txt updated " + goodbye1.ToString()); } else { Console.WriteLine("goodbye.txt not updated because it has been changed"); } Console.WriteLine("Creating blob 'deleteme.txt'"); PutTextBlob(container, new StringBlob("deleteme.txt", "deleteme")); Console.WriteLine("Creating blobs f/a.txt and f/b.txt"); PutTextBlob(container, new StringBlob("f/a.txt", "This is a.txt")); PutTextBlob(container, new StringBlob("f/b.txt", "This is b.txt")); Console.WriteLine("Enumerating all blobs"); // enumerate all the blobs foreach (object b1 in container.ListBlobs("", false)) { Console.WriteLine("{0}", ((BlobProperties)b1).Uri); } Console.WriteLine("Enumerating all blobs with combining common prefixes"); foreach (object b2 in container.ListBlobs("", true)) { BlobProperties blobProperties = b2 as BlobProperties; if (blobProperties != null) { Console.WriteLine("{0}", blobProperties.Uri); } else { Console.WriteLine("Common prefix: {0}", (string)b2); } } Console.WriteLine("Deleting blob 'deleteme.txt'"); container.DeleteBlob("deleteme.txt"); Console.WriteLine("Enumerate the blobs again"); foreach (object b3 in container.ListBlobs("", false)) { Console.WriteLine("{0}", ((BlobProperties)b3).Uri); } // Create another container Console.WriteLine("Creating container 'deleteme'"); BlobContainer container2 = blobStorage.GetBlobContainer("deleteme"); container2.CreateContainer(); // enumerate containers foreach (BlobContainer c in blobStorage.ListBlobContainers()) { Console.WriteLine("Container: {0}", c.ContainerUri); } // Delete the container Console.WriteLine("Deleting container 'deleteme'"); container2.DeleteContainer(); // enumerate containers foreach (BlobContainer c in blobStorage.ListBlobContainers()) { Console.WriteLine("Container: {0}", c.ContainerUri); } } catch (System.Net.WebException we) { Console.WriteLine("Network error: " + we.Message); if (we.Status == System.Net.WebExceptionStatus.ConnectFailure) { Console.WriteLine("Please check if the blob storage service is running at " + account.BaseUri.ToString()); Console.WriteLine("Detailed information on how to run the development storage tool " + "locally can be found in the readme file that comes with this sample."); } } catch (StorageException se) { Console.WriteLine("Storage service error: " + se.Message); } }