Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
 internal static FileSystemItem ToFileSystemItem(this BlobContainerItem containerItem) =>
 new FileSystemItem()
 {
     Name       = containerItem.Name,
     IsDeleted  = containerItem.IsDeleted,
     VersionId  = containerItem.VersionId,
     Properties = containerItem.Properties.ToFileSystemProperties()
 };
Exemplo n.º 3
0
        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;
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
            }
        }
Exemplo n.º 9
0
        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()
 };
Exemplo n.º 11
0
 internal static FileSystemItem ToFileSystemItem(this BlobContainerItem containerItem) =>
Exemplo n.º 12
0
 private static FileSystemItem ConvertItem(BlobContainerItem item)
 {
     return(item.ToFileSystemItem());
 }