Example #1
0
 public PageBlobWriteStream(
     PageBlobClient pageBlobClient,
     long bufferSize,
     long position,
     PageBlobRequestConditions conditions,
     IProgress <long> progressHandler) : base(
         position,
         bufferSize,
         progressHandler)
 {
     ValidateBufferSize(bufferSize);
     ValidatePosition(position);
     _pageBlobClient = pageBlobClient;
     _conditions     = conditions ?? new PageBlobRequestConditions();
     _writeIndex     = position;
 }
        protected override async Task <Stream> OpenWriteAsync(
            PageBlobClient client,
            bool overwrite,
            long?maxDataSize,
            Dictionary <string, string> tags,
            int?bufferSize = default,
            BlobRequestConditions conditions     = default,
            Dictionary <string, string> metadata = default,
            HttpHeaderParameters httpHeaders     = default,
            IProgress <long> progressHandler     = default)
        {
            if (metadata != default)
            {
                TestHelper.AssertInconclusiveRecordingFriendly(Recording.Mode, "PageBlobClient.OpenWriteAsync() does not support metadata.");
            }
            if (tags != default)
            {
                TestHelper.AssertInconclusiveRecordingFriendly(Recording.Mode, "PageBlobClient.OpenWriteAsync() does not support tags.");
            }
            if (httpHeaders != default)
            {
                TestHelper.AssertInconclusiveRecordingFriendly(Recording.Mode, "PageBlobClient.OpenWriteAsync() does not support httpHeaders.");
            }

            PageBlobRequestConditions pageConditions = conditions == default ? default : new PageBlobRequestConditions
                                                       {
                                                           IfModifiedSince   = conditions.IfModifiedSince,
                                                           IfUnmodifiedSince = conditions.IfUnmodifiedSince,
                                                           IfMatch           = conditions.IfMatch,
                                                           IfNoneMatch       = conditions.IfNoneMatch,
                                                           LeaseId           = conditions.LeaseId,
                                                       };

                                                       return(await client.OpenWriteAsync(overwrite, 0, new PageBlobOpenWriteOptions
            {
                BufferSize = bufferSize,
                OpenConditions = pageConditions,
                Size = maxDataSize,
                ProgressHandler = progressHandler,
            }));
        }
Example #3
0
        public async Task GetManagedDiskPageRangesDiffAsync_AccessConditions()
        {
            var snapshot2Client = InstrumentClient(new PageBlobClient(snapshot2SASUri, GetOptions()));

            foreach (var parameters in Reduced_AccessConditions_Data)
            {
                parameters.Match = await SetupBlobMatchCondition(snapshot2Client, parameters.Match);

                PageBlobRequestConditions accessConditions = PageBlobClientTests.BuildAccessConditions(
                    parameters: parameters,
                    lease: false);

                // Act
                Response <PageRangesInfo> response = await snapshot2Client.GetManagedDiskPageRangesDiffAsync(
                    range : new HttpRange(0, Constants.KB),
                    previousSnapshotUri : snapshot1SASUri,
                    conditions : accessConditions);

                // Assert
                Assert.IsNotNull(response.Value.PageRanges);
            }
        }
 public PageBlobWriteStream(
     PageBlobClient pageBlobClient,
     long bufferSize,
     long position,
     PageBlobRequestConditions conditions,
     IProgress <long> progressHandler
     // TODO #27253
     //UploadTransactionalHashingOptions hashingOptions
     ) : base(
         position,
         bufferSize,
         progressHandler
         // TODO #27253
         //hashingOptions
         )
 {
     ValidateBufferSize(bufferSize);
     ValidatePosition(position);
     _pageBlobClient = pageBlobClient;
     _conditions     = conditions ?? new PageBlobRequestConditions();
     _writeIndex     = position;
 }
Example #5
0
        public async Task GetManagedDiskPageRangesDiffAsync_AccessConditionsFail()
        {
            var snapshot2Client = InstrumentClient(new PageBlobClient(snapshot2SASUri, GetOptions()));

            foreach (var parameters in Reduced_AccessConditions_Fail_Data)
            {
                parameters.NoneMatch = await SetupBlobMatchCondition(snapshot2Client, parameters.NoneMatch);

                PageBlobRequestConditions accessConditions = PageBlobClientTests.BuildAccessConditions(
                    parameters: parameters,
                    lease: false);

                // Act
                await TestHelper.CatchAsync <Exception>(
                    async() =>
                {
                    var _ = (await snapshot2Client.GetManagedDiskPageRangesDiffAsync(
                                 range: new HttpRange(0, Constants.KB),
                                 previousSnapshotUri: snapshot1SASUri,
                                 conditions: accessConditions)).Value;
                });
            }
        }