public async Task UndeleteBlobContainerAsync() { // Arrange BlobServiceClient service = GetServiceClient_SoftDelete(); string containerName = GetNewContainerName(); BlobContainerClient container = InstrumentClient(service.GetBlobContainerClient(containerName)); await container.CreateAsync(); await container.DeleteAsync(); IList <BlobContainerItem> containers = await service.GetBlobContainersAsync(states : BlobContainerStates.Deleted).ToListAsync(); BlobContainerItem containerItem = containers.Where(c => c.Name == containerName).FirstOrDefault(); // It takes some time for the Container to be deleted. await Delay(30000); // Act Response <BlobContainerClient> response = await service.UndeleteBlobContainerAsync( containerItem.Name, containerItem.VersionId, GetNewContainerName()); // Assert await response.Value.GetPropertiesAsync(); // Cleanup await container.DeleteAsync(); }
internal static FileSystemItem ToFileSystemItem(this BlobContainerItem containerItem) => new FileSystemItem() { Name = containerItem.Name, IsDeleted = containerItem.IsDeleted, VersionId = containerItem.VersionId, Properties = containerItem.Properties.ToFileSystemProperties() };
public static Blob ToBlob(BlobContainerItem item) { var blob = new Blob(item.Name, BlobItemKind.Folder); blob.TryAddProperties( "IsContainer", true); return(blob); }
public AzureStorageContainer(BlobContainerItem containerItem, AzureStorageContext storageContext, BlobServiceClient serviceClient) { Name = containerItem.Name; privateBlobContainerClient = serviceClient.GetBlobContainerClient(containerItem.Name); cloudBlobContainer = GetTrack1BlobContainer(privateBlobContainerClient, storageContext.StorageAccount.Credentials); privateBlobContainerProperties = containerItem.Properties; IsDeleted = containerItem.IsDeleted; VersionId = containerItem.VersionId; LastModified = privateBlobContainerProperties.LastModified; this.Context = storageContext; }
public async Task ContainerImmutableStorageWithVersioning() { // Validate we are deserializing Get Container Properties responses correctly. // Act Response <BlobContainerProperties> propertiesResponse = await _containerClient.GetPropertiesAsync(); // Assert Assert.IsTrue(propertiesResponse.Value.HasImmutableStorageWithVersioning); // Validate we are deserializing BlobContainerItems correctly. // Act BlobServiceClient blobServiceClient = _containerClient.GetParentBlobServiceClient(); IList <BlobContainerItem> containers = await blobServiceClient.GetBlobContainersAsync().ToListAsync(); BlobContainerItem containerItem = containers.Where(c => c.Name == _containerClient.Name).FirstOrDefault(); // Assert Assert.IsTrue(containerItem.Properties.HasImmutableStorageWithVersioning); }
public async Task ListContainersSegmentAsync_Deleted() { // Arrange BlobServiceClient service = GetServiceClient_SoftDelete(); string containerName = GetNewContainerName(); BlobContainerClient containerClient = InstrumentClient(service.GetBlobContainerClient(containerName)); await containerClient.CreateAsync(); await containerClient.DeleteAsync(); // Act IList <BlobContainerItem> containers = await service.GetBlobContainersAsync(states : BlobContainerStates.Deleted).ToListAsync(); BlobContainerItem containerItem = containers.Where(c => c.Name == containerName).FirstOrDefault(); // Assert Assert.IsTrue(containerItem.IsDeleted); Assert.IsNotNull(containerItem.VersionId); Assert.IsNotNull(containerItem.Properties.DeletedOn); Assert.IsNotNull(containerItem.Properties.RemainingRetentionDays); }
private async Task <BlobContainerClient> StartAzureConnection() { string connectionString = "DefaultEndpointsProtocol=https;AccountName=azurepoc1993;AccountKey=GeDcGm2eVpVOwIoJxhd28Q5tbE3LYOqK+LOsSBoykLk6dnvq9jkwHeGCCgKFLxgeLryzdTaM5WDJEV6pIOakuQ==;EndpointSuffix=core.windows.net"; BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString); //Create a unique name for the container string containerName = "poc4"; // Create the container and return a container client object BlobContainerClient containerClient; BlobContainerItem container = blobServiceClient.GetBlobContainers().Where(b => b.Name == containerName).FirstOrDefault(); if (container == null) { containerClient = await blobServiceClient.CreateBlobContainerAsync(containerName, PublicAccessType.Blob); } else { containerClient = blobServiceClient.GetBlobContainerClient(containerName); } return(containerClient); }
private async Task Initialize() { // If the container client has already been created, then there is nothing to do here if (containerClient != null) { return; } // Create a BlobServiceClient object which will be used to create a container client BlobServiceClient blobServiceClient = new BlobServiceClient(this.connectionString); BlobContainerItem item = blobServiceClient.GetBlobContainers(prefix: this.containerName).FirstOrDefault(); if (item == null) { this.containerClient = await blobServiceClient.CreateBlobContainerAsync(this.containerName); } else { this.containerClient = blobServiceClient.GetBlobContainerClient(this.containerName); } }
public async Task ContainerImmutableStorageWithVersioning() { // Arrange await using DisposingImmutableStorageWithVersioningContainer vlwContainer = await GetTestVersionLevelWormContainer(TestConfigOAuth); // Validate we are deserializing Get Container Properties responses correctly. // Act Response <BlobContainerProperties> propertiesResponse = await vlwContainer.Container.GetPropertiesAsync(); // Assert Assert.IsTrue(propertiesResponse.Value.HasImmutableStorageWithVersioning); // Validate we are deserializing BlobContainerItems correctly. // Act BlobServiceClient blobServiceClient = vlwContainer.Container.GetParentBlobServiceClient(); IList <BlobContainerItem> containers = await blobServiceClient.GetBlobContainersAsync().ToListAsync(); BlobContainerItem containerItem = containers.Where(c => c.Name == vlwContainer.Container.Name).FirstOrDefault(); // Assert Assert.IsTrue(containerItem.Properties.HasImmutableStorageWithVersioning); }
internal static FileSystemItem ToFileSystemItem(this BlobContainerItem containerItem) => new FileSystemItem() { Name = containerItem.Name, Properties = containerItem.Properties.ToFileSystemProperties() };
internal static FileSystemItem ToFileSystemItem(this BlobContainerItem containerItem) =>
private static FileSystemItem ConvertItem(BlobContainerItem item) { return(item.ToFileSystemItem()); }