From 729b6643737608bc050f4072df9dc8033297875f Mon Sep 17 00:00:00 2001 From: Sean McCullough Date: Mon, 17 Aug 2020 17:50:37 -0500 Subject: [PATCH 01/10] Working on bug where deadlock happens when uploading streams where position != 0 --- .../src/AppendBlobClient.cs | 3 +- .../Azure.Storage.Blobs/src/BlobErrors.cs | 1 + .../src/BlockBlobClient.cs | 4 +- .../Azure.Storage.Blobs/src/PageBlobClient.cs | 5 +- .../tests/AppendBlobClientTests.cs | 51 +++++++++++ .../tests/BlobClientTests.cs | 88 ++++++++++++++++++ .../Azure.Storage.Blobs/tests/BlobTestBase.cs | 2 +- .../tests/BlockBlobClientTests.cs | 90 ++++++++++++++++++ .../tests/PageBlobClientTests.cs | 55 +++++++++++ .../Azure.Storage.Common/src/Shared/Errors.cs | 9 ++ .../src/Shared/PartitionedUploader.cs | 2 +- .../src/DataLakeFileClient.cs | 10 +- .../tests/DataLakeTestBase.cs | 2 +- .../tests/FileClientTests.cs | 88 ++++++++++++++++++ .../src/ShareFileClient.cs | 5 +- .../tests/FileClientTests.cs | 91 +++++++++++++++++++ .../tests/FileTestBase.cs | 2 +- 17 files changed, 495 insertions(+), 13 deletions(-) diff --git a/sdk/storage/Azure.Storage.Blobs/src/AppendBlobClient.cs b/sdk/storage/Azure.Storage.Blobs/src/AppendBlobClient.cs index f82a002decb4d..a1d0c9615529e 100644 --- a/sdk/storage/Azure.Storage.Blobs/src/AppendBlobClient.cs +++ b/sdk/storage/Azure.Storage.Blobs/src/AppendBlobClient.cs @@ -962,6 +962,7 @@ internal async Task> AppendBlockInternal( try { BlobErrors.VerifyHttpsCustomerProvidedKey(Uri, CustomerProvidedKey); + Errors.VerifyStreamPosition(content); content = content?.WithNoDispose().WithProgress(progressHandler); return await BlobRestClient.AppendBlob.AppendBlockAsync( @@ -969,7 +970,7 @@ internal async Task> AppendBlockInternal( Pipeline, Uri, body: content, - contentLength: content?.Length ?? 0, + contentLength: content?.Length - content?.Position ?? 0, version: Version.ToVersionString(), transactionalContentHash: transactionalContentHash, leaseId: conditions?.LeaseId, diff --git a/sdk/storage/Azure.Storage.Blobs/src/BlobErrors.cs b/sdk/storage/Azure.Storage.Blobs/src/BlobErrors.cs index 873958b211bd2..630e4bd378072 100644 --- a/sdk/storage/Azure.Storage.Blobs/src/BlobErrors.cs +++ b/sdk/storage/Azure.Storage.Blobs/src/BlobErrors.cs @@ -3,6 +3,7 @@ using System; using System.Globalization; +using System.IO; using Azure.Storage.Blobs.Models; namespace Azure.Storage.Blobs diff --git a/sdk/storage/Azure.Storage.Blobs/src/BlockBlobClient.cs b/sdk/storage/Azure.Storage.Blobs/src/BlockBlobClient.cs index 80a311169c0fc..4ff6a5469cd65 100644 --- a/sdk/storage/Azure.Storage.Blobs/src/BlockBlobClient.cs +++ b/sdk/storage/Azure.Storage.Blobs/src/BlockBlobClient.cs @@ -716,12 +716,14 @@ internal virtual async Task> UploadInternal( $"{nameof(conditions)}: {conditions}"); try { + Errors.VerifyStreamPosition(content); + return await BlobRestClient.BlockBlob.UploadAsync( ClientDiagnostics, Pipeline, Uri, body: content, - contentLength: content?.Length ?? 0, + contentLength: content?.Length - content?.Position ?? 0, version: Version.ToVersionString(), blobContentType: blobHttpHeaders?.ContentType, blobContentEncoding: blobHttpHeaders?.ContentEncoding, diff --git a/sdk/storage/Azure.Storage.Blobs/src/PageBlobClient.cs b/sdk/storage/Azure.Storage.Blobs/src/PageBlobClient.cs index 3c1d99a492778..e628ea2aa00c6 100644 --- a/sdk/storage/Azure.Storage.Blobs/src/PageBlobClient.cs +++ b/sdk/storage/Azure.Storage.Blobs/src/PageBlobClient.cs @@ -1083,15 +1083,16 @@ internal async Task> UploadPagesInternal( $"{nameof(conditions)}: {conditions}"); try { + Errors.VerifyStreamPosition(content); content = content?.WithNoDispose().WithProgress(progressHandler); - var range = new HttpRange(offset, content?.Length ?? null); + var range = new HttpRange(offset, content?.Length - content?.Position ?? null); return await BlobRestClient.PageBlob.UploadPagesAsync( ClientDiagnostics, Pipeline, Uri, body: content, - contentLength: content?.Length ?? 0, + contentLength: content?.Length - content?.Position ?? 0, version: Version.ToVersionString(), transactionalContentHash: transactionalContentHash, timeout: default, diff --git a/sdk/storage/Azure.Storage.Blobs/tests/AppendBlobClientTests.cs b/sdk/storage/Azure.Storage.Blobs/tests/AppendBlobClientTests.cs index f8373bdd405e7..0df976835c76b 100644 --- a/sdk/storage/Azure.Storage.Blobs/tests/AppendBlobClientTests.cs +++ b/sdk/storage/Azure.Storage.Blobs/tests/AppendBlobClientTests.cs @@ -852,6 +852,57 @@ public async Task AppendBlockAsync_ProgressReporting() Assert.AreEqual(blobSize, progress.List[progress.List.Count - 1]); } + [Test] + public async Task AppendBlockAsync_InvalidStreamPosition() + { + await using DisposingContainer test = await GetTestContainerAsync(); + + // Arrange + var blobName = GetNewBlobName(); + AppendBlobClient blob = InstrumentClient(test.Container.GetAppendBlobClient(blobName)); + await blob.CreateAsync(); + const int blobSize = Constants.KB; + var data = GetRandomBuffer(blobSize); + + // Act + using Stream stream = new MemoryStream(data); + stream.Position = stream.Length; + + await TestHelper.AssertExpectedExceptionAsync( + blob.AppendBlockAsync(stream), + e => Assert.AreEqual("stream.Position must be less than stream.Length", e.Message)); + } + + [Test] + public async Task AppendBlockAsync_NonZeroStreamPosition() + { + await using DisposingContainer test = await GetTestContainerAsync(); + + // Arrange + var blobName = GetNewBlobName(); + AppendBlobClient blob = InstrumentClient(test.Container.GetAppendBlobClient(blobName)); + await blob.CreateAsync(); + const int blobSize = Constants.KB; + long position = 512; + byte[] data = GetRandomBuffer(blobSize); + byte[] expectedData = new byte[blobSize - position]; + Array.Copy(data, position, expectedData, 0, blobSize - position); + + // Act + using Stream stream = new MemoryStream(data) + { + Position = position + }; + await blob.AppendBlockAsync(stream); + + // Assert + Response result = await blob.DownloadAsync(); + var dataResult = new MemoryStream(); + await result.Value.Content.CopyToAsync(dataResult); + Assert.AreEqual(blobSize - position, dataResult.Length); + TestHelper.AssertSequenceEqual(expectedData, dataResult.ToArray()); + } + [Test] public async Task AppendBlockFromUriAsync_Min() { diff --git a/sdk/storage/Azure.Storage.Blobs/tests/BlobClientTests.cs b/sdk/storage/Azure.Storage.Blobs/tests/BlobClientTests.cs index 8b36b1b86ac99..64ccfc4b4c50e 100644 --- a/sdk/storage/Azure.Storage.Blobs/tests/BlobClientTests.cs +++ b/sdk/storage/Azure.Storage.Blobs/tests/BlobClientTests.cs @@ -413,6 +413,94 @@ public async Task UploadAsync_File_UploadsBlock() Assert.AreEqual(BlobType.Block, properties.Value.BlobType); } + [Test] + public async Task UploadAsync_Stream_InvalidStreamPosition() + { + await using DisposingContainer test = await GetTestContainerAsync(); + + BlobClient blob = InstrumentClient(test.Container.GetBlobClient(GetNewBlobName())); + long size = Constants.KB; + byte[] data = GetRandomBuffer(size); + + using Stream stream = new MemoryStream(data) + { + Position = size + }; + + // Act + await TestHelper.AssertExpectedExceptionAsync( + blob.UploadAsync( + content: stream), + e => Assert.AreEqual("stream.Position must be less than stream.Length", e.Message)); + } + + [Test] + public async Task UploadAsync_NonZeroStreamPosition() + { + await using DisposingContainer test = await GetTestContainerAsync(); + + BlobClient blob = InstrumentClient(test.Container.GetBlobClient(GetNewBlobName())); + long size = Constants.KB; + long position = 512; + byte[] data = GetRandomBuffer(size); + byte[] expectedData = new byte[size - position]; + Array.Copy(data, position, expectedData, 0, size - position); + + using Stream stream = new MemoryStream(data) + { + Position = position + }; + + // Act + await blob.UploadAsync(content: stream); + + // Assert + Response downloadResponse = await blob.DownloadAsync(); + var actual = new MemoryStream(); + await downloadResponse.Value.Content.CopyToAsync(actual); + TestHelper.AssertSequenceEqual(expectedData, actual.ToArray()); + } + + [Test] + public async Task UploadAsync_NonZeroStreamPositionMultipleBlocks() + { + await using DisposingContainer test = await GetTestContainerAsync(); + + // Arrange + BlobClient blob = InstrumentClient(test.Container.GetBlobClient(GetNewBlobName())); + long size = 2 * Constants.KB; + long position = 300; + byte[] data = GetRandomBuffer(size); + byte[] expectedData = new byte[size - position]; + Array.Copy(data, position, expectedData, 0, size - position); + + using Stream stream = new MemoryStream(data) + { + Position = position + }; + + + BlobUploadOptions options = new BlobUploadOptions + { + TransferOptions = new StorageTransferOptions + { + MaximumTransferSize = 512, + InitialTransferSize = 512 + } + }; + + // Act + await blob.UploadAsync( + content: stream, + options: options); + + // Assert + Response downloadResponse = await blob.DownloadAsync(); + var actual = new MemoryStream(); + await downloadResponse.Value.Content.CopyToAsync(actual); + TestHelper.AssertSequenceEqual(expectedData, actual.ToArray()); + } + [Test] [TestCase(1)] [TestCase(4)] diff --git a/sdk/storage/Azure.Storage.Blobs/tests/BlobTestBase.cs b/sdk/storage/Azure.Storage.Blobs/tests/BlobTestBase.cs index fa888c3aa3814..7d144513be0f2 100644 --- a/sdk/storage/Azure.Storage.Blobs/tests/BlobTestBase.cs +++ b/sdk/storage/Azure.Storage.Blobs/tests/BlobTestBase.cs @@ -36,7 +36,7 @@ protected string SecondaryStorageTenantSecondaryHost() => new Uri(TestConfigSecondary.BlobServiceSecondaryEndpoint).Host; public BlobTestBase(bool async, BlobClientOptions.ServiceVersion serviceVersion, RecordedTestMode? mode = null) - : base(async, mode) + : base(async, RecordedTestMode.Live) { _serviceVersion = serviceVersion; } diff --git a/sdk/storage/Azure.Storage.Blobs/tests/BlockBlobClientTests.cs b/sdk/storage/Azure.Storage.Blobs/tests/BlockBlobClientTests.cs index e83ed603fc78c..926887e61933d 100644 --- a/sdk/storage/Azure.Storage.Blobs/tests/BlockBlobClientTests.cs +++ b/sdk/storage/Azure.Storage.Blobs/tests/BlockBlobClientTests.cs @@ -2060,6 +2060,96 @@ public async Task UploadAsync_VersionId() } } + [Test] + public async Task UploadAsync_InvalidStreamPosition() + { + await using DisposingContainer test = await GetTestContainerAsync(); + + // Arrange + var blockBlobName = GetNewBlobName(); + BlockBlobClient blob = InstrumentClient(test.Container.GetBlockBlobClient(blockBlobName)); + byte[] data = GetRandomBuffer(Size); + + using Stream stream = new MemoryStream(data) + { + Position = Size + }; + + // Act + await TestHelper.AssertExpectedExceptionAsync( + blob.UploadAsync( + content: stream), + e => Assert.AreEqual("stream.Position must be less than stream.Length", e.Message)); + } + + [Test] + public async Task UploadAsync_NonZeroStreamPosition() + { + await using DisposingContainer test = await GetTestContainerAsync(); + + // Arrange + BlockBlobClient blob = InstrumentClient(test.Container.GetBlockBlobClient(GetNewBlobName())); + long size = Constants.KB; + long position = 512; + byte[] data = GetRandomBuffer(size); + byte[] expectedData = new byte[size - position]; + Array.Copy(data, position, expectedData, 0, size - position); + + using Stream stream = new MemoryStream(data) + { + Position = position + }; + + // Act + await blob.UploadAsync(content: stream); + + // Assert + Response downloadResponse = await blob.DownloadAsync(); + var actual = new MemoryStream(); + await downloadResponse.Value.Content.CopyToAsync(actual); + TestHelper.AssertSequenceEqual(expectedData, actual.ToArray()); + } + + [Test] + public async Task UploadAsync_NonZeroStreamPositionMultipleBlocks() + { + await using DisposingContainer test = await GetTestContainerAsync(); + + // Arrange + BlockBlobClient blob = InstrumentClient(test.Container.GetBlockBlobClient(GetNewBlobName())); + long size = 2 * Constants.KB; + long position = 300; + byte[] data = GetRandomBuffer(size); + byte[] expectedData = new byte[size - position]; + Array.Copy(data, position, expectedData, 0, size - position); + + using Stream stream = new MemoryStream(data) + { + Position = position + }; + + + BlobUploadOptions options = new BlobUploadOptions + { + TransferOptions = new StorageTransferOptions + { + MaximumTransferSize = 512, + InitialTransferSize = 512 + } + }; + + // Act + await blob.UploadAsync( + content: stream, + options: options); + + // Assert + Response downloadResponse = await blob.DownloadAsync(); + var actual = new MemoryStream(); + await downloadResponse.Value.Content.CopyToAsync(actual); + TestHelper.AssertSequenceEqual(expectedData, actual.ToArray()); + } + [Test] public async Task GetBlockBlobClient_AsciiName() { diff --git a/sdk/storage/Azure.Storage.Blobs/tests/PageBlobClientTests.cs b/sdk/storage/Azure.Storage.Blobs/tests/PageBlobClientTests.cs index 4db46d2382e0d..9d70c6d334cba 100644 --- a/sdk/storage/Azure.Storage.Blobs/tests/PageBlobClientTests.cs +++ b/sdk/storage/Azure.Storage.Blobs/tests/PageBlobClientTests.cs @@ -762,6 +762,61 @@ await blob.UploadPagesAsync( Assert.AreEqual(blobSize, progress.List[progress.List.Count - 1]); } + [Test] + public async Task UploadPagesAsync_InvalidStreamPosition() + { + await using DisposingContainer test = await GetTestContainerAsync(); + + // Arrange + PageBlobClient blob = await CreatePageBlobClientAsync(test.Container, 4 * Constants.KB); + long size = Constants.KB; + byte[] data = GetRandomBuffer(size); + + using Stream stream = new MemoryStream(data) + { + Position = size + }; + + // Act + await TestHelper.AssertExpectedExceptionAsync( + blob.UploadPagesAsync( + content: stream, + offset: 0), + e => Assert.AreEqual("stream.Position must be less than stream.Length", e.Message)); + } + + [Test] + public async Task UploadPagesAsync_NonZeroStreamPosition() + { + // Arrange + await using DisposingContainer test = await GetTestContainerAsync(); + + long size = Constants.KB; + long position = 512; + PageBlobClient blob = await CreatePageBlobClientAsync(test.Container, size - position); + byte[] data = GetRandomBuffer(size); + byte[] expectedData = new byte[size - position]; + Array.Copy(data, position, expectedData, 0, size - position); + + using Stream stream = new MemoryStream(data) + { + Position = position + }; + + // Act + await blob.UploadPagesAsync( + content: stream, + offset: 0); + + // Assert + Response response = await blob.DownloadAsync(); + + var actualData = new byte[512]; + using var actualStream = new MemoryStream(actualData); + await response.Value.Content.CopyToAsync(actualStream); + TestHelper.AssertSequenceEqual(expectedData, actualData); + } + [Test] public async Task ClearPagesAsync() { diff --git a/sdk/storage/Azure.Storage.Common/src/Shared/Errors.cs b/sdk/storage/Azure.Storage.Common/src/Shared/Errors.cs index 3c2181673f197..c7432decc05c8 100644 --- a/sdk/storage/Azure.Storage.Common/src/Shared/Errors.cs +++ b/sdk/storage/Azure.Storage.Common/src/Shared/Errors.cs @@ -3,6 +3,7 @@ using System; using System.Globalization; +using System.IO; namespace Azure.Storage { @@ -45,5 +46,13 @@ public static ArgumentException InvalidService(char s) public static ArgumentException InsufficientStorageTransferOptions(long streamLength, long statedMaxBlockSize, long necessaryMinBlockSize) => new ArgumentException($"Cannot upload {streamLength} bytes with a maximum transfer size of {statedMaxBlockSize} bytes per block. Please increase the StorageTransferOptions.MaximumTransferSize to at least {necessaryMinBlockSize}."); + + internal static void VerifyStreamPosition(Stream stream) + { + if (stream != null && stream.CanSeek && stream.Position >= stream.Length) + { + throw new ArgumentException($"{nameof(stream)}.{nameof(stream.Position)} must be less than {nameof(stream)}.{nameof(stream.Length)}"); + } + } } } diff --git a/sdk/storage/Azure.Storage.Common/src/Shared/PartitionedUploader.cs b/sdk/storage/Azure.Storage.Common/src/Shared/PartitionedUploader.cs index 449e670965547..5ec4297627b30 100644 --- a/sdk/storage/Azure.Storage.Common/src/Shared/PartitionedUploader.cs +++ b/sdk/storage/Azure.Storage.Common/src/Shared/PartitionedUploader.cs @@ -460,7 +460,7 @@ await _uploadPartitionInternal( { if (content.CanSeek) { - return content.Length; + return content.Length - content.Position; } } catch (NotSupportedException) diff --git a/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeFileClient.cs b/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeFileClient.cs index 49a2c9ddb7803..4b2f81b01cc7c 100644 --- a/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeFileClient.cs +++ b/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeFileClient.cs @@ -1820,6 +1820,8 @@ internal virtual async Task AppendInternal( $"{nameof(leaseId)}: {leaseId}\n"); try { + Errors.VerifyStreamPosition(content); + Response response = await DataLakeRestClient.Path.AppendDataAsync( clientDiagnostics: ClientDiagnostics, pipeline: Pipeline, @@ -1827,7 +1829,7 @@ internal virtual async Task AppendInternal( body: content, version: Version.ToVersionString(), position: offset, - contentLength: content?.Length ?? 0, + contentLength: content?.Length - content?.Position ?? 0, transactionalContentHash: contentHash, leaseId: leaseId, async: async, @@ -4095,6 +4097,8 @@ internal static PartitionedUploader.Behavio if (args?.Conditions != null) args.Conditions = new DataLakeRequestConditions { LeaseId = args.Conditions.LeaseId }; + long newPosition = stream.Length - stream.Position; + // Append data await client.AppendInternal( stream, @@ -4107,7 +4111,7 @@ await client.AppendInternal( // Flush data return await client.FlushInternal( - position: stream.Length, + position: newPosition, retainUncommittedData: default, close: default, args.HttpHeaders, @@ -4121,7 +4125,7 @@ await client.AppendInternal( stream, offset, contentHash: default, - args.Conditions.LeaseId, + args?.Conditions?.LeaseId, progressHandler, async, cancellationToken).ConfigureAwait(false), diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/DataLakeTestBase.cs b/sdk/storage/Azure.Storage.Files.DataLake/tests/DataLakeTestBase.cs index c31a7f51f05b0..0e961960f165a 100644 --- a/sdk/storage/Azure.Storage.Files.DataLake/tests/DataLakeTestBase.cs +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/DataLakeTestBase.cs @@ -36,7 +36,7 @@ public readonly IList AccessControlList public readonly PathPermissions PathPermissions = PathPermissions.ParseSymbolicPermissions("rwxrwxrwx"); public DataLakeTestBase(bool async, DataLakeClientOptions.ServiceVersion serviceVersion, RecordedTestMode? mode = null) - : base(async, mode) + : base(async, RecordedTestMode.Live) { _serviceVersion = serviceVersion; } diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/FileClientTests.cs b/sdk/storage/Azure.Storage.Files.DataLake/tests/FileClientTests.cs index 504b3d244dce0..14890b8c90f6b 100644 --- a/sdk/storage/Azure.Storage.Files.DataLake/tests/FileClientTests.cs +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/FileClientTests.cs @@ -2736,6 +2736,94 @@ public async Task UploadAsync_MinStreamOverride() TestHelper.AssertSequenceEqual(data, actual.ToArray()); } + [Test] + public async Task UploadAsync_Stream_InvalidStreamPosition() + { + // Arrange + await using DisposingFileSystem test = await GetNewFileSystem(); + DataLakeFileClient file = test.FileSystem.GetFileClient(GetNewFileName()); + long size = Constants.KB; + byte[] data = GetRandomBuffer(size); + + using Stream stream = new MemoryStream(data) + { + Position = size + }; + + // Act + await TestHelper.AssertExpectedExceptionAsync( + file.UploadAsync( + content: stream), + e => Assert.AreEqual("stream.Position must be less than stream.Length", e.Message)); + } + + [Test] + public async Task UploadAsync_NonZeroStreamPosition() + { + // Arrange + await using DisposingFileSystem test = await GetNewFileSystem(); + DataLakeFileClient file = test.FileSystem.GetFileClient(GetNewFileName()); + + long size = Constants.KB; + long position = 512; + byte[] data = GetRandomBuffer(size); + byte[] expectedData = new byte[size - position]; + Array.Copy(data, position, expectedData, 0, size - position); + + using Stream stream = new MemoryStream(data) + { + Position = position + }; + + // Act + await file.UploadAsync(stream); + + // Assert + Response downloadResponse = await file.ReadAsync(); + var actual = new MemoryStream(); + await downloadResponse.Value.Content.CopyToAsync(actual); + TestHelper.AssertSequenceEqual(expectedData, actual.ToArray()); + } + + [Test] + public async Task UploadAsync_NonZeroStreamPositionMultipleBlocks() + { + // Arrange + await using DisposingFileSystem test = await GetNewFileSystem(); + DataLakeFileClient file = test.FileSystem.GetFileClient(GetNewFileName()); + + long size = 2 * Constants.KB; + long position = 300; + byte[] data = GetRandomBuffer(size); + byte[] expectedData = new byte[size - position]; + Array.Copy(data, position, expectedData, 0, size - position); + + using Stream stream = new MemoryStream(data) + { + Position = position + }; + + DataLakeFileUploadOptions options = new DataLakeFileUploadOptions + { + TransferOptions = new StorageTransferOptions + { + MaximumTransferSize = 512, + InitialTransferSize = 512 + } + }; + + // Act + await file.UploadAsync( + stream, + options); + + // Assert + Response downloadResponse = await file.ReadAsync(); + var actual = new MemoryStream(); + await downloadResponse.Value.Content.CopyToAsync(actual); + TestHelper.AssertSequenceEqual(expectedData, actual.ToArray()); + } + [Test] [Ignore("Live tests will run out of memory")] public async Task UploadAsync_FileLarge() diff --git a/sdk/storage/Azure.Storage.Files.Shares/src/ShareFileClient.cs b/sdk/storage/Azure.Storage.Files.Shares/src/ShareFileClient.cs index ebf704d13a38c..e8e64bab1a89e 100644 --- a/sdk/storage/Azure.Storage.Files.Shares/src/ShareFileClient.cs +++ b/sdk/storage/Azure.Storage.Files.Shares/src/ShareFileClient.cs @@ -3505,6 +3505,7 @@ private async Task> UploadRangeInternal( $"{nameof(Uri)}: {Uri}"); try { + Errors.VerifyStreamPosition(content); content = content.WithNoDispose().WithProgress(progressHandler); return await FileRestClient.File.UploadRangeAsync( ClientDiagnostics, @@ -3512,7 +3513,7 @@ private async Task> UploadRangeInternal( Uri, version: Version.ToVersionString(), optionalbody: content, - contentLength: content.Length, + contentLength: content?.Length - content?.Position ?? 0, range: range.ToString(), fileRangeWrite: ShareFileRangeWriteType.Update, contentHash: transactionalContentHash, @@ -4035,7 +4036,7 @@ internal async Task> UploadInternal( { // Try to upload the file as a single range Debug.Assert(singleRangeThreshold <= Constants.File.MaxFileUpdateRange); - var length = content.Length; + var length = content.Length - content.Position; if (length <= singleRangeThreshold) { return await UploadRangeInternal( diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/FileClientTests.cs b/sdk/storage/Azure.Storage.Files.Shares/tests/FileClientTests.cs index 5c9e69eb7af8c..3032a805ab596 100644 --- a/sdk/storage/Azure.Storage.Files.Shares/tests/FileClientTests.cs +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/FileClientTests.cs @@ -2026,6 +2026,97 @@ await TestHelper.AssertExpectedExceptionAsync( } } + [Test] + public async Task UploadAsync_Stream_InvalidStreamPosition() + { + // Arrange + await using DisposingDirectory test = await GetTestDirectoryAsync(); + ShareFileClient file = InstrumentClient(test.Directory.GetFileClient(GetNewFileName())); + long size = Constants.KB; + await file.CreateAsync(size); + + byte[] data = GetRandomBuffer(size); + + using Stream stream = new MemoryStream(data) + { + Position = size + }; + + // Act + await TestHelper.AssertExpectedExceptionAsync( + file.UploadAsync( + content: stream), + e => Assert.AreEqual("stream.Position must be less than stream.Length", e.Message)); + } + + [Test] + public async Task UploadAsync_NonZeroStreamPosition() + { + // Arrange + await using DisposingDirectory test = await GetTestDirectoryAsync(); + ShareFileClient file = InstrumentClient(test.Directory.GetFileClient(GetNewFileName())); + long size = Constants.KB; + long position = 512; + await file.CreateAsync(size - position); + + byte[] data = GetRandomBuffer(size); + byte[] expectedData = new byte[size - position]; + Array.Copy(data, position, expectedData, 0, size - position); + + using Stream stream = new MemoryStream(data) + { + Position = position + }; + + // Act + await file.UploadAsync(stream); + + // Assert + Response response = await file.DownloadAsync(); + + var actualData = new byte[512]; + using var actualStream = new MemoryStream(actualData); + await response.Value.Content.CopyToAsync(actualStream); + TestHelper.AssertSequenceEqual(expectedData, actualData); + } + + [Test] + public async Task UploadAsync_NonZeroStreamPositionMultipleBlocks() + { + // Arrange + await using DisposingDirectory test = await GetTestDirectoryAsync(); + ShareFileClient file = InstrumentClient(test.Directory.GetFileClient(GetNewFileName())); + long size = 2 * Constants.KB; + long position = 300; + await file.CreateAsync(size - position); + + byte[] data = GetRandomBuffer(size); + byte[] expectedData = new byte[size - position]; + Array.Copy(data, position, expectedData, 0, size - position); + + using Stream stream = new MemoryStream(data) + { + Position = position + }; + + // Act + await file.UploadInternal( + stream, + progressHandler: null, + conditions: null, + singleRangeThreshold: 512, + async: IsAsync, + cancellationToken: CancellationToken.None); + + // Assert + Response response = await file.DownloadAsync(); + + var actualData = new byte[512]; + using var actualStream = new MemoryStream(actualData); + await response.Value.Content.CopyToAsync(actualStream); + TestHelper.AssertSequenceEqual(expectedData, actualData); + } + public async Task ClearRangeAsync() { await using DisposingFile test = await GetTestFileAsync(); diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/FileTestBase.cs b/sdk/storage/Azure.Storage.Files.Shares/tests/FileTestBase.cs index 542c46cc9b55a..e7ad8fc5e702a 100644 --- a/sdk/storage/Azure.Storage.Files.Shares/tests/FileTestBase.cs +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/FileTestBase.cs @@ -26,7 +26,7 @@ public class FileTestBase : StorageTestBase public static Uri s_invalidUri = new Uri("https://error.file.core.windows.net"); public FileTestBase(bool async, ShareClientOptions.ServiceVersion serviceVersion, RecordedTestMode? mode = null) - : base(async, mode) + : base(async, RecordedTestMode.Live) { _serviceVersion = serviceVersion; } From 712aaec854d40a6c650cd7e07af1ece90ad51208 Mon Sep 17 00:00:00 2001 From: Sean McCullough Date: Tue, 18 Aug 2020 09:31:21 -0500 Subject: [PATCH 02/10] Got ShareFileClient.Upload working --- .../Azure.Storage.Files.Shares/src/ShareFileClient.cs | 5 ++++- .../Azure.Storage.Files.Shares/tests/FileClientTests.cs | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/sdk/storage/Azure.Storage.Files.Shares/src/ShareFileClient.cs b/sdk/storage/Azure.Storage.Files.Shares/src/ShareFileClient.cs index e8e64bab1a89e..92ff49a5fb731 100644 --- a/sdk/storage/Azure.Storage.Files.Shares/src/ShareFileClient.cs +++ b/sdk/storage/Azure.Storage.Files.Shares/src/ShareFileClient.cs @@ -4053,6 +4053,9 @@ internal async Task> UploadInternal( // Otherwise naively split the file into ranges and upload them individually var response = default(Response); var pool = default(MemoryPool); + + long initalPosition = content.Position; + try { pool = (singleRangeThreshold < MemoryPool.Shared.MaxBufferSize) ? @@ -4082,7 +4085,7 @@ await content.ReadAsync(segment.Array, 0, singleRangeThreshold, cancellationToke () => buffer.Dispose(), cancellationToken); response = await UploadRangeInternal( - new HttpRange(partition.ParentPosition, partition.Length), + new HttpRange(partition.ParentPosition - initalPosition, partition.Length), partition, null, progressHandler, diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/FileClientTests.cs b/sdk/storage/Azure.Storage.Files.Shares/tests/FileClientTests.cs index 3032a805ab596..38e0e6a4a4f09 100644 --- a/sdk/storage/Azure.Storage.Files.Shares/tests/FileClientTests.cs +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/FileClientTests.cs @@ -2111,7 +2111,7 @@ await file.UploadInternal( // Assert Response response = await file.DownloadAsync(); - var actualData = new byte[512]; + var actualData = new byte[size - position]; using var actualStream = new MemoryStream(actualData); await response.Value.Content.CopyToAsync(actualStream); TestHelper.AssertSequenceEqual(expectedData, actualData); From b2d8717369c264cc2528987f78002ea73db1569d Mon Sep 17 00:00:00 2001 From: Sean McCullough Date: Tue, 18 Aug 2020 10:37:45 -0500 Subject: [PATCH 03/10] Recorded unit tests --- .../src/BlockBlobClient.cs | 4 +- .../Azure.Storage.Blobs/tests/BlobTestBase.cs | 2 +- ...ppendBlockAsync_InvalidStreamPosition.json | 106 ++++++ ...BlockAsync_InvalidStreamPositionAsync.json | 106 ++++++ ...ppendBlockAsync_NonZeroStreamPosition.json | 183 +++++++++ ...BlockAsync_NonZeroStreamPositionAsync.json | 183 +++++++++ .../UploadAsync_NonZeroStreamPosition.json | 149 ++++++++ ...ploadAsync_NonZeroStreamPositionAsync.json | 149 ++++++++ ...c_NonZeroStreamPositionMultipleBlocks.json | 278 ++++++++++++++ ...ZeroStreamPositionMultipleBlocksAsync.json | 278 ++++++++++++++ ...oadAsync_Stream_InvalidStreamPosition.json | 71 ++++ ...ync_Stream_InvalidStreamPositionAsync.json | 71 ++++ .../UploadAsync_InvalidStreamPosition.json | 71 ++++ ...ploadAsync_InvalidStreamPositionAsync.json | 71 ++++ .../UploadAsync_NonZeroStreamPosition.json | 148 ++++++++ ...ploadAsync_NonZeroStreamPositionAsync.json | 148 ++++++++ ...c_NonZeroStreamPositionMultipleBlocks.json | 278 ++++++++++++++ ...ZeroStreamPositionMultipleBlocksAsync.json | 278 ++++++++++++++ ...ploadPagesAsync_InvalidStreamPosition.json | 108 ++++++ ...PagesAsync_InvalidStreamPositionAsync.json | 108 ++++++ ...ploadPagesAsync_NonZeroStreamPosition.json | 186 +++++++++ ...PagesAsync_NonZeroStreamPositionAsync.json | 186 +++++++++ .../Azure.Storage.Common/src/Shared/Errors.cs | 2 +- .../src/Shared/PartitionedUploader.cs | 20 +- .../tests/PartitionedUploaderTests.cs | 2 +- .../src/DataLakeFileClient.cs | 4 +- .../tests/DataLakeTestBase.cs | 2 +- .../UploadAsync_NonZeroStreamPosition.json | 209 +++++++++++ ...ploadAsync_NonZeroStreamPositionAsync.json | 209 +++++++++++ ...c_NonZeroStreamPositionMultipleBlocks.json | 304 +++++++++++++++ ...ZeroStreamPositionMultipleBlocksAsync.json | 304 +++++++++++++++ ...oadAsync_Stream_InvalidStreamPosition.json | 104 ++++++ ...ync_Stream_InvalidStreamPositionAsync.json | 104 ++++++ .../src/ShareFileClient.cs | 2 + .../tests/FileTestBase.cs | 2 +- .../UploadAsync_NonZeroStreamPosition.json | 246 ++++++++++++ ...ploadAsync_NonZeroStreamPositionAsync.json | 246 ++++++++++++ ...c_NonZeroStreamPositionMultipleBlocks.json | 353 ++++++++++++++++++ ...ZeroStreamPositionMultipleBlocksAsync.json | 353 ++++++++++++++++++ ...oadAsync_Stream_InvalidStreamPosition.json | 161 ++++++++ ...ync_Stream_InvalidStreamPositionAsync.json | 161 ++++++++ 41 files changed, 5936 insertions(+), 14 deletions(-) create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/AppendBlockAsync_InvalidStreamPosition.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/AppendBlockAsync_InvalidStreamPositionAsync.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/AppendBlockAsync_NonZeroStreamPosition.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/AppendBlockAsync_NonZeroStreamPositionAsync.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/UploadAsync_NonZeroStreamPosition.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/UploadAsync_NonZeroStreamPositionAsync.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocks.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocksAsync.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/UploadAsync_Stream_InvalidStreamPosition.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/UploadAsync_Stream_InvalidStreamPositionAsync.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/UploadAsync_InvalidStreamPosition.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/UploadAsync_InvalidStreamPositionAsync.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/UploadAsync_NonZeroStreamPosition.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/UploadAsync_NonZeroStreamPositionAsync.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocks.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocksAsync.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/UploadPagesAsync_InvalidStreamPosition.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/UploadPagesAsync_InvalidStreamPositionAsync.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/UploadPagesAsync_NonZeroStreamPosition.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/UploadPagesAsync_NonZeroStreamPositionAsync.json create mode 100644 sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPosition.json create mode 100644 sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPositionAsync.json create mode 100644 sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocks.json create mode 100644 sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocksAsync.json create mode 100644 sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/UploadAsync_Stream_InvalidStreamPosition.json create mode 100644 sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/UploadAsync_Stream_InvalidStreamPositionAsync.json create mode 100644 sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPosition.json create mode 100644 sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPositionAsync.json create mode 100644 sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocks.json create mode 100644 sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocksAsync.json create mode 100644 sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadAsync_Stream_InvalidStreamPosition.json create mode 100644 sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadAsync_Stream_InvalidStreamPositionAsync.json diff --git a/sdk/storage/Azure.Storage.Blobs/src/BlockBlobClient.cs b/sdk/storage/Azure.Storage.Blobs/src/BlockBlobClient.cs index 4ff6a5469cd65..d70c94df2c7d6 100644 --- a/sdk/storage/Azure.Storage.Blobs/src/BlockBlobClient.cs +++ b/sdk/storage/Azure.Storage.Blobs/src/BlockBlobClient.cs @@ -2192,9 +2192,9 @@ internal static PartitionedUploader.Behavior progressHandler, async, cancellationToken).ConfigureAwait(false), - CommitPartitionedUpload = async (partitions, args, async, cancellationToken) + CommitPartitionedUpload = async (partitions, initalialPosition, args, async, cancellationToken) => await client.CommitBlockListInternal( - partitions.Select(partition => StorageExtensions.GenerateBlockId(partition.Offset)), + partitions.Select(partition => StorageExtensions.GenerateBlockId(partition.Offset - initalialPosition)), args.HttpHeaders, args.Metadata, args.Tags, diff --git a/sdk/storage/Azure.Storage.Blobs/tests/BlobTestBase.cs b/sdk/storage/Azure.Storage.Blobs/tests/BlobTestBase.cs index 7d144513be0f2..fa888c3aa3814 100644 --- a/sdk/storage/Azure.Storage.Blobs/tests/BlobTestBase.cs +++ b/sdk/storage/Azure.Storage.Blobs/tests/BlobTestBase.cs @@ -36,7 +36,7 @@ protected string SecondaryStorageTenantSecondaryHost() => new Uri(TestConfigSecondary.BlobServiceSecondaryEndpoint).Host; public BlobTestBase(bool async, BlobClientOptions.ServiceVersion serviceVersion, RecordedTestMode? mode = null) - : base(async, RecordedTestMode.Live) + : base(async, mode) { _serviceVersion = serviceVersion; } diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/AppendBlockAsync_InvalidStreamPosition.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/AppendBlockAsync_InvalidStreamPosition.json new file mode 100644 index 0000000000000..0573915a22acf --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/AppendBlockAsync_InvalidStreamPosition.json @@ -0,0 +1,106 @@ +{ + "Entries": [ + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-b3c4b638-037d-0c57-a2a5-2b5b6f39a85e?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-1cdc78ab27463a4681da1df4de66d125-0f0b114094bfb44f-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "c1676979-6d32-f3ba-7a5b-d786c7cba269", + "x-ms-date": "Tue, 18 Aug 2020 15:16:36 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:16:36 GMT", + "ETag": "\u00220x8D84389B2EEFB93\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:16:36 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "c1676979-6d32-f3ba-7a5b-d786c7cba269", + "x-ms-request-id": "8e3c3a63-401e-000c-6d72-75e4fb000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-b3c4b638-037d-0c57-a2a5-2b5b6f39a85e/test-blob-69c5659f-c4de-525f-d2db-abacda55eef6", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "0", + "traceparent": "00-c7d386e9ec2bbc41b22130e3cd6627ce-fab3f01c5ca30e45-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-type": "AppendBlob", + "x-ms-client-request-id": "b862bf2e-c4e6-b5d3-0a14-ef56c20e1925", + "x-ms-date": "Tue, 18 Aug 2020 15:16:37 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:16:36 GMT", + "ETag": "\u00220x8D84389B303ADCD\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:16:36 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "b862bf2e-c4e6-b5d3-0a14-ef56c20e1925", + "x-ms-request-id": "8e3c3acd-401e-000c-3a72-75e4fb000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-b3c4b638-037d-0c57-a2a5-2b5b6f39a85e?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-b1e7181257a890448b207d44d37d992d-a9f2951650da474a-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "b4607904-9e7e-3ecd-e072-5e432561006b", + "x-ms-date": "Tue, 18 Aug 2020 15:16:37 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:16:36 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "b4607904-9e7e-3ecd-e072-5e432561006b", + "x-ms-request-id": "8e3c3b17-401e-000c-7572-75e4fb000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "747426824", + "Storage_TestConfigDefault": "ProductionTenant\nseandevtest\nU2FuaXRpemVk\nhttps://seandevtest.blob.core.windows.net\nhttps://seandevtest.file.core.windows.net\nhttps://seandevtest.queue.core.windows.net\nhttps://seandevtest.table.core.windows.net\n\n\n\n\nhttps://seandevtest-secondary.blob.core.windows.net\nhttps://seandevtest-secondary.file.core.windows.net\nhttps://seandevtest-secondary.queue.core.windows.net\nhttps://seandevtest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seandevtest.blob.core.windows.net/;QueueEndpoint=https://seandevtest.queue.core.windows.net/;FileEndpoint=https://seandevtest.file.core.windows.net/;BlobSecondaryEndpoint=https://seandevtest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seandevtest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seandevtest-secondary.file.core.windows.net/;AccountName=seandevtest;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/AppendBlockAsync_InvalidStreamPositionAsync.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/AppendBlockAsync_InvalidStreamPositionAsync.json new file mode 100644 index 0000000000000..ec4edf858dffd --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/AppendBlockAsync_InvalidStreamPositionAsync.json @@ -0,0 +1,106 @@ +{ + "Entries": [ + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-a4ec64cb-f422-0d35-4de3-563137ece785?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-f9b61d6ac8d2b644a20e19b92b103386-d074139b2190c347-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "a9a981be-a499-b9c0-6012-a6eb12b13bcc", + "x-ms-date": "Tue, 18 Aug 2020 15:16:37 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:16:37 GMT", + "ETag": "\u00220x8D84389B3AD9C73\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:16:37 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "a9a981be-a499-b9c0-6012-a6eb12b13bcc", + "x-ms-request-id": "38f97ea2-501e-0018-1e72-75279f000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-a4ec64cb-f422-0d35-4de3-563137ece785/test-blob-369a4568-b31a-328f-bfb9-6ef04f25860d", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "0", + "traceparent": "00-ebf75daa1419b14d837254eef02f0a50-f03c5d92dc4d5544-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-type": "AppendBlob", + "x-ms-client-request-id": "40a7d8f6-31a5-0ae6-f176-eae036d06a3a", + "x-ms-date": "Tue, 18 Aug 2020 15:16:38 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:16:37 GMT", + "ETag": "\u00220x8D84389B3B914B2\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:16:37 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "40a7d8f6-31a5-0ae6-f176-eae036d06a3a", + "x-ms-request-id": "38f97ee0-501e-0018-5072-75279f000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-a4ec64cb-f422-0d35-4de3-563137ece785?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-ad34555c09c96242a2fa3b3fb270124f-1d5c78c6020e434c-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "6c2cad00-46cd-f178-bf51-6e021f1727c4", + "x-ms-date": "Tue, 18 Aug 2020 15:16:38 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:16:37 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "6c2cad00-46cd-f178-bf51-6e021f1727c4", + "x-ms-request-id": "38f97f14-501e-0018-7f72-75279f000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "97018515", + "Storage_TestConfigDefault": "ProductionTenant\nseandevtest\nU2FuaXRpemVk\nhttps://seandevtest.blob.core.windows.net\nhttps://seandevtest.file.core.windows.net\nhttps://seandevtest.queue.core.windows.net\nhttps://seandevtest.table.core.windows.net\n\n\n\n\nhttps://seandevtest-secondary.blob.core.windows.net\nhttps://seandevtest-secondary.file.core.windows.net\nhttps://seandevtest-secondary.queue.core.windows.net\nhttps://seandevtest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seandevtest.blob.core.windows.net/;QueueEndpoint=https://seandevtest.queue.core.windows.net/;FileEndpoint=https://seandevtest.file.core.windows.net/;BlobSecondaryEndpoint=https://seandevtest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seandevtest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seandevtest-secondary.file.core.windows.net/;AccountName=seandevtest;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/AppendBlockAsync_NonZeroStreamPosition.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/AppendBlockAsync_NonZeroStreamPosition.json new file mode 100644 index 0000000000000..dfe60c29577e9 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/AppendBlockAsync_NonZeroStreamPosition.json @@ -0,0 +1,183 @@ +{ + "Entries": [ + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-6f5ff719-b33d-993f-a509-4235b2222f67?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-5b6eef38cf21a54f8f8a9305c0d070bb-5323a658aedea847-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "6121d174-b0c0-9f72-f94b-339ba559b9d0", + "x-ms-date": "Tue, 18 Aug 2020 15:16:37 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:16:36 GMT", + "ETag": "\u00220x8D84389B348CEBB\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:16:37 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "6121d174-b0c0-9f72-f94b-339ba559b9d0", + "x-ms-request-id": "cdb61f3b-a01e-002f-5772-758b30000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-6f5ff719-b33d-993f-a509-4235b2222f67/test-blob-978a1f84-a9a4-3ecd-36f7-5a2056667b26", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "0", + "traceparent": "00-7b5286cad0af9e48831a66e217c2c26c-f0a827657aab4247-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-type": "AppendBlob", + "x-ms-client-request-id": "fe548d62-49f5-cae6-03e3-2ac955514993", + "x-ms-date": "Tue, 18 Aug 2020 15:16:37 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:16:36 GMT", + "ETag": "\u00220x8D84389B354263A\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:16:37 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "fe548d62-49f5-cae6-03e3-2ac955514993", + "x-ms-request-id": "cdb61f9f-a01e-002f-2d72-758b30000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-6f5ff719-b33d-993f-a509-4235b2222f67/test-blob-978a1f84-a9a4-3ecd-36f7-5a2056667b26?comp=appendblock", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-762a90bbe622ec4fa9d63399d91d3534-e652d1ceee630f44-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "eec6b9ab-f91e-0414-c12e-920d195c6ed4", + "x-ms-date": "Tue, 18 Aug 2020 15:16:37 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "9VC/ehmZMPI/V4VHS9b6fU6/fyIUlISn755HTC2bBN5sk\u002BgZ7M4HUx75SpmR2057BxQd4iYCO2DMF4p6UeTEpFKn2rfu4ZGAuCwEGknqFhRQzEQZfSG3aViHTNRDjAE5NaZG6QCXjCaCnCr6/iAX4QF2KoWfqyYw73BeZpS9PSsryuWjpCwUuD8dl\u002BH3vWs3cGvTzGF7mop/FfqPOCaSxV7\u002BzjM7cz3VYnFFgRNFOTEEJ/Yp6nDJrzBbJI4yhIAZi9GC\u002BO44/P0t/WrwNRh2OdzIihEwaNvtNB8D306vot3xLPZBw0FCzCr5\u002B\u002BwG2XoX5euxavlu6SL2lMPPNByuflqM/ggiNHabhb7nNm3u51ul6/pj/Tjkg0PTSy59c5cNSn2Retpx9bB0FuQ7h7K1B61oKkkiSoEiqHvFTulIHRIm2ezwXW2ANPVJ7\u002BZTqfyRHUOAFUhO6//8b9Jfq6bHLPjSFa3FxKpA5/ZT2Vuazv5/NDCmxwjJ1\u002B3s9O6bIIhPgcLugZNOy1mYQC1R\u002BxKjYaHT4HZ1IWTwCT3A2NC7pcZuBFeZq01rMWnXDYfaeNzbSZJNyEAR2WBe/XhWjfKI3Jpm4/e7CrZTaK8NnRTdFpBg5I89bt2GXCr3Oq7VFKN2TzDsc5TlID7c\u002BV\u002BRAztLgOfn9qliSm694IfMw88HflM=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:16:36 GMT", + "ETag": "\u00220x8D84389B362CEEE\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:16:37 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-blob-append-offset": "0", + "x-ms-blob-committed-block-count": "1", + "x-ms-client-request-id": "eec6b9ab-f91e-0414-c12e-920d195c6ed4", + "x-ms-content-crc64": "1PVyTLkSfLE=", + "x-ms-request-id": "cdb61fe5-a01e-002f-6d72-758b30000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-6f5ff719-b33d-993f-a509-4235b2222f67/test-blob-978a1f84-a9a4-3ecd-36f7-5a2056667b26", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-b289e4415a6b94408f3ccff1923a0ac2-a5ae6d56080b234e-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "1518dd2e-9040-1235-824a-22c10fee6167", + "x-ms-date": "Tue, 18 Aug 2020 15:16:37 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "512", + "Content-Type": "application/octet-stream", + "Date": "Tue, 18 Aug 2020 15:16:36 GMT", + "ETag": "\u00220x8D84389B362CEEE\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:16:37 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-blob-committed-block-count": "1", + "x-ms-blob-type": "AppendBlob", + "x-ms-client-request-id": "1518dd2e-9040-1235-824a-22c10fee6167", + "x-ms-creation-time": "Tue, 18 Aug 2020 15:16:37 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "cdb6202f-a01e-002f-2b72-758b30000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": "9VC/ehmZMPI/V4VHS9b6fU6/fyIUlISn755HTC2bBN5sk\u002BgZ7M4HUx75SpmR2057BxQd4iYCO2DMF4p6UeTEpFKn2rfu4ZGAuCwEGknqFhRQzEQZfSG3aViHTNRDjAE5NaZG6QCXjCaCnCr6/iAX4QF2KoWfqyYw73BeZpS9PSsryuWjpCwUuD8dl\u002BH3vWs3cGvTzGF7mop/FfqPOCaSxV7\u002BzjM7cz3VYnFFgRNFOTEEJ/Yp6nDJrzBbJI4yhIAZi9GC\u002BO44/P0t/WrwNRh2OdzIihEwaNvtNB8D306vot3xLPZBw0FCzCr5\u002B\u002BwG2XoX5euxavlu6SL2lMPPNByuflqM/ggiNHabhb7nNm3u51ul6/pj/Tjkg0PTSy59c5cNSn2Retpx9bB0FuQ7h7K1B61oKkkiSoEiqHvFTulIHRIm2ezwXW2ANPVJ7\u002BZTqfyRHUOAFUhO6//8b9Jfq6bHLPjSFa3FxKpA5/ZT2Vuazv5/NDCmxwjJ1\u002B3s9O6bIIhPgcLugZNOy1mYQC1R\u002BxKjYaHT4HZ1IWTwCT3A2NC7pcZuBFeZq01rMWnXDYfaeNzbSZJNyEAR2WBe/XhWjfKI3Jpm4/e7CrZTaK8NnRTdFpBg5I89bt2GXCr3Oq7VFKN2TzDsc5TlID7c\u002BV\u002BRAztLgOfn9qliSm694IfMw88HflM=" + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-6f5ff719-b33d-993f-a509-4235b2222f67?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-eacc28321f8ead47bebf8e014af764fb-8d2f8c2c9af85c49-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "3cdea7ee-5944-ea93-d672-eaa245ce34fb", + "x-ms-date": "Tue, 18 Aug 2020 15:16:37 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:16:36 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "3cdea7ee-5944-ea93-d672-eaa245ce34fb", + "x-ms-request-id": "cdb62073-a01e-002f-6472-758b30000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "1338164414", + "Storage_TestConfigDefault": "ProductionTenant\nseandevtest\nU2FuaXRpemVk\nhttps://seandevtest.blob.core.windows.net\nhttps://seandevtest.file.core.windows.net\nhttps://seandevtest.queue.core.windows.net\nhttps://seandevtest.table.core.windows.net\n\n\n\n\nhttps://seandevtest-secondary.blob.core.windows.net\nhttps://seandevtest-secondary.file.core.windows.net\nhttps://seandevtest-secondary.queue.core.windows.net\nhttps://seandevtest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seandevtest.blob.core.windows.net/;QueueEndpoint=https://seandevtest.queue.core.windows.net/;FileEndpoint=https://seandevtest.file.core.windows.net/;BlobSecondaryEndpoint=https://seandevtest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seandevtest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seandevtest-secondary.file.core.windows.net/;AccountName=seandevtest;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/AppendBlockAsync_NonZeroStreamPositionAsync.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/AppendBlockAsync_NonZeroStreamPositionAsync.json new file mode 100644 index 0000000000000..d603d428880fc --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/AppendBlockAsync_NonZeroStreamPositionAsync.json @@ -0,0 +1,183 @@ +{ + "Entries": [ + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-74741b5f-8869-b8b9-ab8e-e4b1cc342696?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-ac841d4d2941cc4ab3f681de22ef61f5-6e6b3e1914880746-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "c098bdcb-39cd-889e-e3f6-0c011ada357a", + "x-ms-date": "Tue, 18 Aug 2020 15:16:38 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:16:38 GMT", + "ETag": "\u00220x8D84389B3F16931\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:16:38 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "c098bdcb-39cd-889e-e3f6-0c011ada357a", + "x-ms-request-id": "6345d811-401e-0048-8072-753897000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-74741b5f-8869-b8b9-ab8e-e4b1cc342696/test-blob-13da7981-9d0f-4fec-6d3a-cba45272b90c", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "0", + "traceparent": "00-a3dccabe44e8a24c940e0f9d274af482-1d3ba20f5dad8847-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-type": "AppendBlob", + "x-ms-client-request-id": "85c5bc8f-b0c4-2eba-d149-52926df93571", + "x-ms-date": "Tue, 18 Aug 2020 15:16:38 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:16:38 GMT", + "ETag": "\u00220x8D84389B3FDA405\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:16:38 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "85c5bc8f-b0c4-2eba-d149-52926df93571", + "x-ms-request-id": "6345d864-401e-0048-4772-753897000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-74741b5f-8869-b8b9-ab8e-e4b1cc342696/test-blob-13da7981-9d0f-4fec-6d3a-cba45272b90c?comp=appendblock", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-f123bf70f6b7f64db4e85b9ae93f0348-ab9e5ffcdd51b644-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "115a7742-01e6-beae-da2c-fa0353d7c5fc", + "x-ms-date": "Tue, 18 Aug 2020 15:16:38 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "jdufOYofZVmTKNCOeG0eAgXeFxDF/8BRr5mLGqg/g/tuSOvUFUtFQfu/p/2xxhnSpBpxN/BoiI4bTonxlEuxU6XVIDCBSu26mNYUBljDoOmAuHWNzkwKBcBcucbBVK2vDVNY26bpUFott54aU4I2WK2gcdvVJIVYyhpwJZAm\u002BEQoZPgEasRClmcbXxet8LE9JmEZIePR2unO/xGLeSvKBr5a8e6JMe3pXdpzusRtq9poMv4vDddgVooONWuyth07UVlYUv/Cs/V0L8MIXiAkYFQ3I0ctm/jn\u002BZpke/uCN6a8N2hrFVjapX4Jut4TWPhp6tUWe5PWDrZgcVhkXjj58vgdSya3uUv7XH3IJOAa06Gh\u002B5Ema7sS5imyC6T/dkdFD8jm9gzSsTCKGh4WDerVRZ22w2On04Y8CmX8BK6n/OY1gxQXNNyVz0lgnFCc/Ng/3cUGSLPknTxCqeym1a2C4h444YrWvhDAIfMZRzY2nw2NvSfpoLMzUOXX1Yvw7/mc3rkxYxtOaB60RSe/ylYGCwneGReFmUJrBZCk/umF0DH6fWh9BTzyP1QJNFqLc4aP0cmBEtbhFkV2xV6LqWo1LnX2xEztiAbN69nDfGTn4JEJFS0fA71bGWYjBj/dZ5Xq1AXklK85oUjDtCb8Hprgj\u002BXMgZM8FSu3mqvlyoLG74Q=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:16:38 GMT", + "ETag": "\u00220x8D84389B408F0AC\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:16:38 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-blob-append-offset": "0", + "x-ms-blob-committed-block-count": "1", + "x-ms-client-request-id": "115a7742-01e6-beae-da2c-fa0353d7c5fc", + "x-ms-content-crc64": "kR2uaCGs\u002BJI=", + "x-ms-request-id": "6345d8aa-401e-0048-0872-753897000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-74741b5f-8869-b8b9-ab8e-e4b1cc342696/test-blob-13da7981-9d0f-4fec-6d3a-cba45272b90c", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-47eaa6e4ff59b247bb92052807c2a75a-a956e6676169f246-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "0a8719b0-de6c-419d-2ae9-84d651df7c9d", + "x-ms-date": "Tue, 18 Aug 2020 15:16:38 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "512", + "Content-Type": "application/octet-stream", + "Date": "Tue, 18 Aug 2020 15:16:38 GMT", + "ETag": "\u00220x8D84389B408F0AC\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:16:38 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-blob-committed-block-count": "1", + "x-ms-blob-type": "AppendBlob", + "x-ms-client-request-id": "0a8719b0-de6c-419d-2ae9-84d651df7c9d", + "x-ms-creation-time": "Tue, 18 Aug 2020 15:16:38 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "6345d8e3-401e-0048-3d72-753897000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": "jdufOYofZVmTKNCOeG0eAgXeFxDF/8BRr5mLGqg/g/tuSOvUFUtFQfu/p/2xxhnSpBpxN/BoiI4bTonxlEuxU6XVIDCBSu26mNYUBljDoOmAuHWNzkwKBcBcucbBVK2vDVNY26bpUFott54aU4I2WK2gcdvVJIVYyhpwJZAm\u002BEQoZPgEasRClmcbXxet8LE9JmEZIePR2unO/xGLeSvKBr5a8e6JMe3pXdpzusRtq9poMv4vDddgVooONWuyth07UVlYUv/Cs/V0L8MIXiAkYFQ3I0ctm/jn\u002BZpke/uCN6a8N2hrFVjapX4Jut4TWPhp6tUWe5PWDrZgcVhkXjj58vgdSya3uUv7XH3IJOAa06Gh\u002B5Ema7sS5imyC6T/dkdFD8jm9gzSsTCKGh4WDerVRZ22w2On04Y8CmX8BK6n/OY1gxQXNNyVz0lgnFCc/Ng/3cUGSLPknTxCqeym1a2C4h444YrWvhDAIfMZRzY2nw2NvSfpoLMzUOXX1Yvw7/mc3rkxYxtOaB60RSe/ylYGCwneGReFmUJrBZCk/umF0DH6fWh9BTzyP1QJNFqLc4aP0cmBEtbhFkV2xV6LqWo1LnX2xEztiAbN69nDfGTn4JEJFS0fA71bGWYjBj/dZ5Xq1AXklK85oUjDtCb8Hprgj\u002BXMgZM8FSu3mqvlyoLG74Q=" + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-74741b5f-8869-b8b9-ab8e-e4b1cc342696?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-09370d8295cf20428c85f8890043047d-1e5c4256034b8b45-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "3952bd0c-bb4f-e68f-0476-1b09fdb5470a", + "x-ms-date": "Tue, 18 Aug 2020 15:16:38 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:16:38 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "3952bd0c-bb4f-e68f-0476-1b09fdb5470a", + "x-ms-request-id": "6345d919-401e-0048-6f72-753897000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "135330848", + "Storage_TestConfigDefault": "ProductionTenant\nseandevtest\nU2FuaXRpemVk\nhttps://seandevtest.blob.core.windows.net\nhttps://seandevtest.file.core.windows.net\nhttps://seandevtest.queue.core.windows.net\nhttps://seandevtest.table.core.windows.net\n\n\n\n\nhttps://seandevtest-secondary.blob.core.windows.net\nhttps://seandevtest-secondary.file.core.windows.net\nhttps://seandevtest-secondary.queue.core.windows.net\nhttps://seandevtest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seandevtest.blob.core.windows.net/;QueueEndpoint=https://seandevtest.queue.core.windows.net/;FileEndpoint=https://seandevtest.file.core.windows.net/;BlobSecondaryEndpoint=https://seandevtest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seandevtest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seandevtest-secondary.file.core.windows.net/;AccountName=seandevtest;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/UploadAsync_NonZeroStreamPosition.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/UploadAsync_NonZeroStreamPosition.json new file mode 100644 index 0000000000000..64d0b3ea9e87d --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/UploadAsync_NonZeroStreamPosition.json @@ -0,0 +1,149 @@ +{ + "Entries": [ + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-b318bc5d-5dcc-11d9-4f90-16fe08d963db?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-f97cbc798b945945a2204c637f608c03-72869f6f9972274c-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "65c6768a-5ee2-01ff-05fb-888964890250", + "x-ms-date": "Tue, 18 Aug 2020 15:20:12 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:20:11 GMT", + "ETag": "\u00220x8D8438A33955B8B\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:20:12 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "65c6768a-5ee2-01ff-05fb-888964890250", + "x-ms-request-id": "405a4b05-d01e-0020-1e73-7566c6000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-b318bc5d-5dcc-11d9-4f90-16fe08d963db/test-blob-fb7831bf-7e19-860a-2610-a1412c4f6769", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "If-None-Match": "*", + "traceparent": "00-7a2b71ed0a387b44a764e72e390f1355-b59855fac4fecd4b-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "0e0c3da4-ea24-a46b-2cd3-6765fa30d1f4", + "x-ms-date": "Tue, 18 Aug 2020 15:20:12 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "uP99dBjDk3Gl0B23tFUxY9amWntFf5o8\u002B7z/UpMKU1s1QfjBJsvV8SEYaeCRlpRP2yjqWOMUczllQHhcxEHemnzBgnNccDwL0WlZLBW5q2Qor3drH/p4IM2/XOZSeCzgOs9kzxQg8mrr34d5u0Ykq5UTNBTKcnuCSGGmnRRWuFg8efJGVdtQB7wMfz9y/mWGm7BRPkMYFsdT4YeyelVWlSYvPUJU3Va5wy1XvfM7D0r8HwJkBXoUJGMr8nNUnY1ntukYQ8EiMr1Zl3oWwVjTF9I9tltT8pCsGxnfKevjZSaf8AcKI8yI2exECm3//WMKV9qhF\u002BYxE8RYbCeoQwnSdjFUd9BQyfQFtNxuDucirR221NEQQk4/bt1Dsbek4JXjcpM7q4aSuY3mm2IKwwTcNr4K8m83wTTjFAjzDRg9YNRGi5xT5wGXIxpDKabsNarYZ3v4mu4mrLBfWJZ9n6x1qTuOwzhoiE\u002B9c85U85iO999dGqacRMbmIN7r9I5rGYRtzX9qXXFycN4sOyYf0bgY0WG3H4QG2WR0p6NZfJTAUVpK5yUYI5lt66rHcAmfxk4m0yIttPkAZvQb9rbOGfNKa\u002BnM1eqT/67ISTTaP2hb1eFUMqlxk51gSYAw/S3jn9G2fQUg0vFkk9N0ZGrEJSeMvyDUeuZK2NhMa4tpYgKA5ao=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Content-MD5": "tgoDlX\u002BANHZx3JvIQ8STLQ==", + "Date": "Tue, 18 Aug 2020 15:20:11 GMT", + "ETag": "\u00220x8D8438A33AC6A99\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:20:12 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "0e0c3da4-ea24-a46b-2cd3-6765fa30d1f4", + "x-ms-content-crc64": "MIglEFU0XKs=", + "x-ms-request-id": "405a4bb3-d01e-0020-3973-7566c6000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-b318bc5d-5dcc-11d9-4f90-16fe08d963db/test-blob-fb7831bf-7e19-860a-2610-a1412c4f6769", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-5b2932f6bcd8364087601ccc06d42398-3d4848abe768c54f-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "c4be1167-d674-7885-b81d-36679b8af56e", + "x-ms-date": "Tue, 18 Aug 2020 15:20:13 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "512", + "Content-MD5": "tgoDlX\u002BANHZx3JvIQ8STLQ==", + "Content-Type": "application/octet-stream", + "Date": "Tue, 18 Aug 2020 15:20:11 GMT", + "ETag": "\u00220x8D8438A33AC6A99\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:20:12 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "c4be1167-d674-7885-b81d-36679b8af56e", + "x-ms-creation-time": "Tue, 18 Aug 2020 15:20:12 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "405a4c06-d01e-0020-0873-7566c6000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": "uP99dBjDk3Gl0B23tFUxY9amWntFf5o8\u002B7z/UpMKU1s1QfjBJsvV8SEYaeCRlpRP2yjqWOMUczllQHhcxEHemnzBgnNccDwL0WlZLBW5q2Qor3drH/p4IM2/XOZSeCzgOs9kzxQg8mrr34d5u0Ykq5UTNBTKcnuCSGGmnRRWuFg8efJGVdtQB7wMfz9y/mWGm7BRPkMYFsdT4YeyelVWlSYvPUJU3Va5wy1XvfM7D0r8HwJkBXoUJGMr8nNUnY1ntukYQ8EiMr1Zl3oWwVjTF9I9tltT8pCsGxnfKevjZSaf8AcKI8yI2exECm3//WMKV9qhF\u002BYxE8RYbCeoQwnSdjFUd9BQyfQFtNxuDucirR221NEQQk4/bt1Dsbek4JXjcpM7q4aSuY3mm2IKwwTcNr4K8m83wTTjFAjzDRg9YNRGi5xT5wGXIxpDKabsNarYZ3v4mu4mrLBfWJZ9n6x1qTuOwzhoiE\u002B9c85U85iO999dGqacRMbmIN7r9I5rGYRtzX9qXXFycN4sOyYf0bgY0WG3H4QG2WR0p6NZfJTAUVpK5yUYI5lt66rHcAmfxk4m0yIttPkAZvQb9rbOGfNKa\u002BnM1eqT/67ISTTaP2hb1eFUMqlxk51gSYAw/S3jn9G2fQUg0vFkk9N0ZGrEJSeMvyDUeuZK2NhMa4tpYgKA5ao=" + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-b318bc5d-5dcc-11d9-4f90-16fe08d963db?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-e55e868880694844b4585bf8c06d8621-32bc0116e401814e-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "e9fd97ba-0d72-a97f-3be8-4847f21c8359", + "x-ms-date": "Tue, 18 Aug 2020 15:20:13 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:20:12 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "e9fd97ba-0d72-a97f-3be8-4847f21c8359", + "x-ms-request-id": "405a4c65-d01e-0020-5c73-7566c6000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "841819588", + "Storage_TestConfigDefault": "ProductionTenant\nseandevtest\nU2FuaXRpemVk\nhttps://seandevtest.blob.core.windows.net\nhttps://seandevtest.file.core.windows.net\nhttps://seandevtest.queue.core.windows.net\nhttps://seandevtest.table.core.windows.net\n\n\n\n\nhttps://seandevtest-secondary.blob.core.windows.net\nhttps://seandevtest-secondary.file.core.windows.net\nhttps://seandevtest-secondary.queue.core.windows.net\nhttps://seandevtest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seandevtest.blob.core.windows.net/;QueueEndpoint=https://seandevtest.queue.core.windows.net/;FileEndpoint=https://seandevtest.file.core.windows.net/;BlobSecondaryEndpoint=https://seandevtest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seandevtest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seandevtest-secondary.file.core.windows.net/;AccountName=seandevtest;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/UploadAsync_NonZeroStreamPositionAsync.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/UploadAsync_NonZeroStreamPositionAsync.json new file mode 100644 index 0000000000000..3a9e4c502342f --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/UploadAsync_NonZeroStreamPositionAsync.json @@ -0,0 +1,149 @@ +{ + "Entries": [ + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-a9a808f9-ce36-a0a7-cc2e-44de0729a691?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-61429d4b9ae4b645846ab5c11a9609d6-33beaf4b37128845-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "c4323602-22d5-4d4e-6fe4-23f5d80f2274", + "x-ms-date": "Tue, 18 Aug 2020 15:20:14 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:20:13 GMT", + "ETag": "\u00220x8D8438A34B22FBE\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:20:14 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "c4323602-22d5-4d4e-6fe4-23f5d80f2274", + "x-ms-request-id": "87216ffa-601e-0010-4773-753cec000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-a9a808f9-ce36-a0a7-cc2e-44de0729a691/test-blob-37ef10cb-2f4a-b598-4d38-173b3eb1c564", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "If-None-Match": "*", + "traceparent": "00-cd4b0f43fa92154b8f0e14b91d76948c-f3c121f8429fc541-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "c5b2cc28-9bde-76ec-1719-dd939a0b5c86", + "x-ms-date": "Tue, 18 Aug 2020 15:20:14 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "2YEglV9A856rPRT0bjbto4BX\u002BFSU31HDTLAi/IDAJixxnjN\u002BEj6lDgWc/5019900cbeW5GivIvkvXEmuHfce6hfngtADb5BBsupO\u002BOC0jlXS7ovIKkLDwns5Trb09vAOfRWGTXQNMQEnVDJ\u002BYCkZe8702y9rVcDUI8BUySDZTLv5QHrLLkDgxbyJoNUQRWFSH9PnABvAoihUsSq0uGfhTQd3hCCvTk2OFBZy4rTrxN5eAqpN8kyfOJ1SdnwWKwxVqFPNmcBBotCFWesFTsBzaexLVba9k1u610uCXNjQeOgJHTlhHSsdHV/Zx5hgmurd3wyQytVWmBT3EsF1vkX4teED\u002BzCGEUzALjhW48vCWjxgpH3LP60Ts4QlaQppqF4a4BK3XZ65Vs3Az5ud/7RINbiFFBrILXUz8EisYadCV4bZPAK5Cvydp02wC3ARdbPQ3DRR5JNEUrOcg21WDfUlfngVxMKyjyq86G3MFyIFIXqV24Vy8HPylOpPHIePR5lYioz4/LDwHkwKlfsmeDqRl2LywTFvso4EIjDYYnOjLKHTc42VDCTKpL05aFp3zBuwvYQknIVn6df\u002B89qAGLvYZ2haUgWt/Is9KBxzNkozjVUUJ6XvfpAbbIq1lxhKSYwCYADxHHkWA8H453Np87ONymaEa/AV6enXP\u002BZ792Ry8t4=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Content-MD5": "5TKHwTWVNsAidAMYJv/k5Q==", + "Date": "Tue, 18 Aug 2020 15:20:13 GMT", + "ETag": "\u00220x8D8438A34BE32DD\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:20:14 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "c5b2cc28-9bde-76ec-1719-dd939a0b5c86", + "x-ms-content-crc64": "KtidQRICPIw=", + "x-ms-request-id": "87217060-601e-0010-2273-753cec000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-a9a808f9-ce36-a0a7-cc2e-44de0729a691/test-blob-37ef10cb-2f4a-b598-4d38-173b3eb1c564", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-6c20d4d12e21fa47822c1f5d2c8a1bcd-51033e621a9f784b-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "98cfa46d-2dc0-f400-845f-322893486319", + "x-ms-date": "Tue, 18 Aug 2020 15:20:14 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "512", + "Content-MD5": "5TKHwTWVNsAidAMYJv/k5Q==", + "Content-Type": "application/octet-stream", + "Date": "Tue, 18 Aug 2020 15:20:13 GMT", + "ETag": "\u00220x8D8438A34BE32DD\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:20:14 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "98cfa46d-2dc0-f400-845f-322893486319", + "x-ms-creation-time": "Tue, 18 Aug 2020 15:20:14 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "872170b7-601e-0010-7273-753cec000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": "2YEglV9A856rPRT0bjbto4BX\u002BFSU31HDTLAi/IDAJixxnjN\u002BEj6lDgWc/5019900cbeW5GivIvkvXEmuHfce6hfngtADb5BBsupO\u002BOC0jlXS7ovIKkLDwns5Trb09vAOfRWGTXQNMQEnVDJ\u002BYCkZe8702y9rVcDUI8BUySDZTLv5QHrLLkDgxbyJoNUQRWFSH9PnABvAoihUsSq0uGfhTQd3hCCvTk2OFBZy4rTrxN5eAqpN8kyfOJ1SdnwWKwxVqFPNmcBBotCFWesFTsBzaexLVba9k1u610uCXNjQeOgJHTlhHSsdHV/Zx5hgmurd3wyQytVWmBT3EsF1vkX4teED\u002BzCGEUzALjhW48vCWjxgpH3LP60Ts4QlaQppqF4a4BK3XZ65Vs3Az5ud/7RINbiFFBrILXUz8EisYadCV4bZPAK5Cvydp02wC3ARdbPQ3DRR5JNEUrOcg21WDfUlfngVxMKyjyq86G3MFyIFIXqV24Vy8HPylOpPHIePR5lYioz4/LDwHkwKlfsmeDqRl2LywTFvso4EIjDYYnOjLKHTc42VDCTKpL05aFp3zBuwvYQknIVn6df\u002B89qAGLvYZ2haUgWt/Is9KBxzNkozjVUUJ6XvfpAbbIq1lxhKSYwCYADxHHkWA8H453Np87ONymaEa/AV6enXP\u002BZ792Ry8t4=" + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-a9a808f9-ce36-a0a7-cc2e-44de0729a691?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-295819d68945dd4884edf11041145dd8-6bd1091a99c6654d-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "f6254f5f-c43c-c7c5-94e4-fd7d10606360", + "x-ms-date": "Tue, 18 Aug 2020 15:20:14 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:20:13 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "f6254f5f-c43c-c7c5-94e4-fd7d10606360", + "x-ms-request-id": "8721711c-601e-0010-5173-753cec000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "116251356", + "Storage_TestConfigDefault": "ProductionTenant\nseandevtest\nU2FuaXRpemVk\nhttps://seandevtest.blob.core.windows.net\nhttps://seandevtest.file.core.windows.net\nhttps://seandevtest.queue.core.windows.net\nhttps://seandevtest.table.core.windows.net\n\n\n\n\nhttps://seandevtest-secondary.blob.core.windows.net\nhttps://seandevtest-secondary.file.core.windows.net\nhttps://seandevtest-secondary.queue.core.windows.net\nhttps://seandevtest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seandevtest.blob.core.windows.net/;QueueEndpoint=https://seandevtest.queue.core.windows.net/;FileEndpoint=https://seandevtest.file.core.windows.net/;BlobSecondaryEndpoint=https://seandevtest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seandevtest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seandevtest-secondary.file.core.windows.net/;AccountName=seandevtest;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocks.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocks.json new file mode 100644 index 0000000000000..9f3f93eed401f --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocks.json @@ -0,0 +1,278 @@ +{ + "Entries": [ + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-06a295d0-8e9a-6e08-caf1-30d03995d8b7?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-6847204370597b4098a82cf93dd97361-6285e2488b175b48-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "bac41bc6-f07c-b2b9-8fe5-f8417e2d401a", + "x-ms-date": "Tue, 18 Aug 2020 15:31:51 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:31:51 GMT", + "ETag": "\u00220x8D8438BD4772146\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:31:51 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "bac41bc6-f07c-b2b9-8fe5-f8417e2d401a", + "x-ms-request-id": "82f14371-001e-0066-0974-75b850000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-06a295d0-8e9a-6e08-caf1-30d03995d8b7/test-blob-4e4d0744-aebc-f4f6-6286-3ab33693898e?comp=block\u0026blockid=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-7418df93e2a5734ab278ffa06d019575-6bb4bfc90f5fdb4b-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "0a9c34e1-eae9-5933-dd55-70fe498c7fd7", + "x-ms-date": "Tue, 18 Aug 2020 15:31:52 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "ej1u1sWFtIssLskcJYUkeAVzJ4uNMrdfxTVBqcvWHaFogQxLYgowFassen1ndNYrd2VgDg/06EeGDxCQQwrAVhEotKR42Bb7QxHfYLg5\u002BFFfFjJmdQ6Rc5nExVP5n9KgbCNrPr8ysp5PZcv9FIePTBe\u002BMS3YWuEDlkAKsxPDAaM/P/SUzbmSLWOUFhBDlF4SNXg7O26kyBJCaKh\u002BJ/\u002BKjGMnvdWS\u002Bn5dLATKREPQvwLh\u002BH6ah8Y1m3bhUmUREwVjCYqtHNaJfzr53g5q2oTPcqilnC6B8ASd8SJfsKgZTBj\u002BZjq4I6MsWHlDoKi3ysDxEuC9a3fW4hiGDyqzKc6S4JH1bHRJF04EeEO1PU9b5SdhbZ7HXOChJ4MiMhN5eC6qscAXwV5MqPuRuPIzIaTJKioDUbwwyoSwVETwJ\u002BU7i/8UC4yORCPIFcSiNqPubQbeWAfodidyeuY7Zm0ZXIAWVi3yHhUYOuUHOjz3jZTgwuY\u002BEc/dUhXYopCmUt22rrhDjOB2\u002B07wxh0i4Tvqeu1SW6SG20uxOQMXGXyFcucIUIuDswCzaseXTUqxunDZ7iijU/c5MNJtklPcXuHSa1Q1GpGwZsbsnvHd7o4AAH6SPitT4R7wziC4FiGt1gvmxeL1fKDfKYhht7QGW0FEbZHVSh\u002B1f4k2RUtw91CkP8jl9ik=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:31:51 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "0a9c34e1-eae9-5933-dd55-70fe498c7fd7", + "x-ms-content-crc64": "7o3skRz/jok=", + "x-ms-request-id": "82f1440f-001e-0066-1274-75b850000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-06a295d0-8e9a-6e08-caf1-30d03995d8b7/test-blob-4e4d0744-aebc-f4f6-6286-3ab33693898e?comp=block\u0026blockid=AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-7418df93e2a5734ab278ffa06d019575-af783eb546a47f40-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "3261bc69-a044-0733-0eb9-1ebdaa40d6fe", + "x-ms-date": "Tue, 18 Aug 2020 15:31:52 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "rAqE3bIVo/Eqaulz33SpkNeM6zBFWL82VW8xOL137CBkGJhiDfeXChKNXsxb2JGDphRnO/rG41NLTYhD42o0s33JDsbbRoLg9eAduPnz23zerpGpELAmnjREFsBvUyeoWatOkcrKp1\u002BRh0UZqStaWHELZTTZiqLMom\u002BRlzDCcaG5dV5NpUmyEwcxF4hrDfUJ6b5OY\u002B7yzs4Ige9aOA8vzxWkXzPMDLIoWFEtp3MZYZV6iK1xcw2zx6aQRCRaWNr3AUdzxq3BPNwLJQqcxCZb7x9Z37BhvlsI8JiMPMiOzQB2NqYrpprouEvRZU0CFgOANFUEAXgqlUPratYVNQAUfFgKJY6AL0iEcCdkkFgOBdmVDAdyisyHTKBiPzzE04NLvOn1\u002BPF0/wQNf5BRxgXr3WX8gCj4ovKLg9nuHfAMv52jGNRvGA3oIAwDZAo7NYWad2HWyFJaUhn2anQXhuIUAcDzrq0xfMVYE18c9T3oT01TU6WPNfdKSca6eK2Y0Jop7mNKSIfYafubfrTyPV3cDhonxDM8hcvIqGXndgMXwEPF8gbZnQfGe\u002Bmq87dCVwto3WmTcAxm7GmXgZ8i8PP3g75xLUpWAnASYUhJkpEUhVFZfpiZhE82XgacQRxoo4r2sm/50SrAEtv5gA/DHVrYg/tOyHJaXf9vOs5EucBUqr0=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:31:51 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "3261bc69-a044-0733-0eb9-1ebdaa40d6fe", + "x-ms-content-crc64": "/lPtSab7LZU=", + "x-ms-request-id": "82f14450-001e-0066-4b74-75b850000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-06a295d0-8e9a-6e08-caf1-30d03995d8b7/test-blob-4e4d0744-aebc-f4f6-6286-3ab33693898e?comp=block\u0026blockid=AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-7418df93e2a5734ab278ffa06d019575-a52122cefa1b864d-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "8d9402be-4d2b-b793-fb0f-6b47de27af37", + "x-ms-date": "Tue, 18 Aug 2020 15:31:52 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "vlPfIRu0JplsvaADP3JBq8S\u002BIBnbGJxVcIqWXHtYGqXWUgXJerZoRycvBZy9\u002By/HjJn1AjOQ4qW3irGRHcodFKP7LextdzAOVdnxqxMAl3Razs/iYxdyRXBgEvAE1yldEfH4ws1DWhRo5q1anzaStvI9Nk76O7GMiOh8DGRACn6vlJoiB9WmF3S6eXxqF6U5zlv9x6DaYtU/bDnlxk2wJ9wuqgqbcK8clh/aQME0IXFCQj4IQ0Ld1DHE4pucwVAmClGgO22anl6s4DCBACITC0rIooMPp\u002BSZUdbZ1o0TgNXOtDVvlOYDp6TgXGISXNQOsNZR1B7NF2NtBumXwcfQmWBbskvtpHdjxPreLkqCh/UByiW2wqu2AZ3SAo38bObdEMIBtqmIIQxf7RAk7ukY6n/0lfehGde1pLGuGqHqZ1cTAR2IgdBLeKgZV9SbkRK0uRgOB9fvPPbrTBH42gZrdYW4EO3LkGmuqR1OiMECGROe\u002BmGJ21\u002BAJMUmnDS\u002BUp2hreJO4oEl6SmuX166oLM16TL\u002BWuCl4pkmN\u002BsnpPQ071Z/rNrfszaSeBE42nwBxoMR8bICwPi9/MtIKKqV/UQ0em8IOvTZVTb7bOHPbQcdJHFoFrJBMS9dwbAPloqL/HvMA2AM\u002BYuPOJx8BlMX7o7DKwM5LeeS80g/qnlDyb\u002Brb28=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:31:51 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "8d9402be-4d2b-b793-fb0f-6b47de27af37", + "x-ms-content-crc64": "TJ1i5USw5\u002BA=", + "x-ms-request-id": "82f14477-001e-0066-6e74-75b850000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-06a295d0-8e9a-6e08-caf1-30d03995d8b7/test-blob-4e4d0744-aebc-f4f6-6286-3ab33693898e?comp=block\u0026blockid=AAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "212", + "traceparent": "00-7418df93e2a5734ab278ffa06d019575-38829ef697a04746-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "a7fff1d0-48ac-e1d3-a910-62a415000528", + "x-ms-date": "Tue, 18 Aug 2020 15:31:52 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "ZgNqpxAr5djdFsUr3EbTIUtqhlLPkzkQF81PEktu3dGW47DqJBsb2FNUCnwtHWNjpSF9VCQdoNLJWZBD3NONbjn0lPmV6P0vT67\u002Be4m84vpq62wp8IiseEPeIcqL1/uAx5tDOYhpzbwkTgR1HyRJDHeV2fBmY32wRxu1t8cypHiyfbTtealxAB6wBaKENlkelBRT9f4KGmQdk/FttBX18amMwqJwW5PNJNnStV3aLBDClyOz3656qGJQz\u002Ba4A0wIuxP493S3rTiAhdEkN2QGQ2bgqxw=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:31:51 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "a7fff1d0-48ac-e1d3-a910-62a415000528", + "x-ms-content-crc64": "RTHSz/cNpf4=", + "x-ms-request-id": "82f144fd-001e-0066-6574-75b850000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-06a295d0-8e9a-6e08-caf1-30d03995d8b7/test-blob-4e4d0744-aebc-f4f6-6286-3ab33693898e?comp=blocklist", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "347", + "Content-Type": "application/xml", + "traceparent": "00-7418df93e2a5734ab278ffa06d019575-1e6ce43c2bda834c-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "ed77bd44-0728-6e8b-dac3-89d6d616d372", + "x-ms-date": "Tue, 18 Aug 2020 15:31:52 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "\u003CBlockList\u003E\u003CLatest\u003EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\u003C/Latest\u003E\u003CLatest\u003EAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\u003C/Latest\u003E\u003CLatest\u003EAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\u003C/Latest\u003E\u003CLatest\u003EAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\u003C/Latest\u003E\u003C/BlockList\u003E", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:31:51 GMT", + "ETag": "\u00220x8D8438BD4BEA23C\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:31:52 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "ed77bd44-0728-6e8b-dac3-89d6d616d372", + "x-ms-content-crc64": "/6ZdN7JpfFQ=", + "x-ms-request-id": "82f14543-001e-0066-1f74-75b850000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-06a295d0-8e9a-6e08-caf1-30d03995d8b7/test-blob-4e4d0744-aebc-f4f6-6286-3ab33693898e", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-64ce64e445813e4db9aa25b5f1555a3d-6ae1c12b0f09a045-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "575f3e67-1889-8aff-cf36-b3f72b6eae30", + "x-ms-date": "Tue, 18 Aug 2020 15:31:52 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "1748", + "Content-Type": "application/octet-stream", + "Date": "Tue, 18 Aug 2020 15:31:51 GMT", + "ETag": "\u00220x8D8438BD4BEA23C\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:31:52 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "575f3e67-1889-8aff-cf36-b3f72b6eae30", + "x-ms-creation-time": "Tue, 18 Aug 2020 15:31:52 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "82f14570-001e-0066-4a74-75b850000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": "ej1u1sWFtIssLskcJYUkeAVzJ4uNMrdfxTVBqcvWHaFogQxLYgowFassen1ndNYrd2VgDg/06EeGDxCQQwrAVhEotKR42Bb7QxHfYLg5\u002BFFfFjJmdQ6Rc5nExVP5n9KgbCNrPr8ysp5PZcv9FIePTBe\u002BMS3YWuEDlkAKsxPDAaM/P/SUzbmSLWOUFhBDlF4SNXg7O26kyBJCaKh\u002BJ/\u002BKjGMnvdWS\u002Bn5dLATKREPQvwLh\u002BH6ah8Y1m3bhUmUREwVjCYqtHNaJfzr53g5q2oTPcqilnC6B8ASd8SJfsKgZTBj\u002BZjq4I6MsWHlDoKi3ysDxEuC9a3fW4hiGDyqzKc6S4JH1bHRJF04EeEO1PU9b5SdhbZ7HXOChJ4MiMhN5eC6qscAXwV5MqPuRuPIzIaTJKioDUbwwyoSwVETwJ\u002BU7i/8UC4yORCPIFcSiNqPubQbeWAfodidyeuY7Zm0ZXIAWVi3yHhUYOuUHOjz3jZTgwuY\u002BEc/dUhXYopCmUt22rrhDjOB2\u002B07wxh0i4Tvqeu1SW6SG20uxOQMXGXyFcucIUIuDswCzaseXTUqxunDZ7iijU/c5MNJtklPcXuHSa1Q1GpGwZsbsnvHd7o4AAH6SPitT4R7wziC4FiGt1gvmxeL1fKDfKYhht7QGW0FEbZHVSh\u002B1f4k2RUtw91CkP8jl9imsCoTdshWj8Spq6XPfdKmQ14zrMEVYvzZVbzE4vXfsIGQYmGIN95cKEo1ezFvYkYOmFGc7\u002BsbjU0tNiEPjajSzfckOxttGguD14B24\u002BfPbfN6ukakQsCaeNEQWwG9TJ6hZq06RysqnX5GHRRmpK1pYcQtlNNmKosyib5GXMMJxobl1Xk2lSbITBzEXiGsN9Qnpvk5j7vLOzgiB71o4Dy/PFaRfM8wMsihYUS2ncxlhlXqIrXFzDbPHppBEJFpY2vcBR3PGrcE83AslCpzEJlvvH1nfsGG\u002BWwjwmIw8yI7NAHY2piummui4S9FlTQIWA4A0VQQBeCqVQ\u002Btq1hU1ABR8WAoljoAvSIRwJ2SQWA4F2ZUMB3KKzIdMoGI/PMTTg0u86fX48XT/BA1/kFHGBevdZfyAKPii8ouD2e4d8Ay/naMY1G8YDeggDANkCjs1hZp3YdbIUlpSGfZqdBeG4hQBwPOurTF8xVgTXxz1PehPTVNTpY8190pJxrp4rZjQminuY0pIh9hp\u002B5t\u002BtPI9XdwOGifEMzyFy8ioZed2AxfAQ8XyBtmdB8Z76arzt0JXC2jdaZNwDGbsaZeBnyLw8/eDvnEtSlYCcBJhSEmSkRSFUVl\u002BmJmETzZeBpxBHGijivayb/nRKsAS2/mAD8MdWtiD\u002B07Iclpd/286zkS5wFSqvb5T3yEbtCaZbL2gAz9yQavEviAZ2xicVXCKllx7WBql1lIFyXq2aEcnLwWcvfsvx4yZ9QIzkOKlt4qxkR3KHRSj\u002By3sbXcwDlXZ8asTAJd0Ws7P4mMXckVwYBLwBNcpXRHx\u002BMLNQ1oUaOatWp82krbyPTZO\u002BjuxjIjofAxkQAp\u002Br5SaIgfVphd0unl8ahelOc5b/ceg2mLVP2w55cZNsCfcLqoKm3CvHJYf2kDBNCFxQkI\u002BCENC3dQxxOKbnMFQJgpRoDttmp5erOAwgQAiEwtKyKKDD6fkmVHW2daNE4DVzrQ1b5TmA6ek4FxiElzUDrDWUdQezRdjbQbpl8HH0JlgW7JL7aR3Y8T63i5Kgof1AcoltsKrtgGd0gKN/Gzm3RDCAbapiCEMX\u002B0QJO7pGOp/9JX3oRnXtaSxrhqh6mdXEwEdiIHQS3ioGVfUm5EStLkYDgfX7zz260wR\u002BNoGa3WFuBDty5BprqkdTojBAhkTnvphidtfgCTFJpw0vlKdoa3iTuKBJekprl9euqCzNeky/lrgpeKZJjfrJ6T0NO9Wf6za37M2kngRONp8AcaDEfGyAsD4vfzLSCiqlf1ENHpvCDr02VU2\u002B2zhz20HHSRxaBayQTEvXcGwD5aKi/x7zANgDPmLjzicfAZTF\u002B6OwysDOS3nkvNIP6p5Q8m/q29vZgNqpxAr5djdFsUr3EbTIUtqhlLPkzkQF81PEktu3dGW47DqJBsb2FNUCnwtHWNjpSF9VCQdoNLJWZBD3NONbjn0lPmV6P0vT67\u002Be4m84vpq62wp8IiseEPeIcqL1/uAx5tDOYhpzbwkTgR1HyRJDHeV2fBmY32wRxu1t8cypHiyfbTtealxAB6wBaKENlkelBRT9f4KGmQdk/FttBX18amMwqJwW5PNJNnStV3aLBDClyOz3656qGJQz\u002Ba4A0wIuxP493S3rTiAhdEkN2QGQ2bgqxw=" + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-06a295d0-8e9a-6e08-caf1-30d03995d8b7?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-13318e15f4e0b3409012daf84a42bf28-c5eb5374e6f9b14d-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "986e714d-7bb7-5fe8-bae3-e3fb87faf03e", + "x-ms-date": "Tue, 18 Aug 2020 15:31:52 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:31:51 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "986e714d-7bb7-5fe8-bae3-e3fb87faf03e", + "x-ms-request-id": "82f145c0-001e-0066-1174-75b850000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "1070931499", + "Storage_TestConfigDefault": "ProductionTenant\nseandevtest\nU2FuaXRpemVk\nhttps://seandevtest.blob.core.windows.net\nhttps://seandevtest.file.core.windows.net\nhttps://seandevtest.queue.core.windows.net\nhttps://seandevtest.table.core.windows.net\n\n\n\n\nhttps://seandevtest-secondary.blob.core.windows.net\nhttps://seandevtest-secondary.file.core.windows.net\nhttps://seandevtest-secondary.queue.core.windows.net\nhttps://seandevtest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seandevtest.blob.core.windows.net/;QueueEndpoint=https://seandevtest.queue.core.windows.net/;FileEndpoint=https://seandevtest.file.core.windows.net/;BlobSecondaryEndpoint=https://seandevtest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seandevtest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seandevtest-secondary.file.core.windows.net/;AccountName=seandevtest;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocksAsync.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocksAsync.json new file mode 100644 index 0000000000000..cac55f5cd860d --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocksAsync.json @@ -0,0 +1,278 @@ +{ + "Entries": [ + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-6ae0fe47-9d46-17a1-8044-122356f042ad?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-eae6ecfdb4328641b2de6013307730e9-997e16aed6129c4e-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "5571a7b2-d04e-d446-61e0-2ee4f0018396", + "x-ms-date": "Tue, 18 Aug 2020 15:20:14 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:20:14 GMT", + "ETag": "\u00220x8D8438A35039ECD\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:20:14 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "5571a7b2-d04e-d446-61e0-2ee4f0018396", + "x-ms-request-id": "510187f3-301e-006e-6773-75a323000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-6ae0fe47-9d46-17a1-8044-122356f042ad/test-blob-f47ddddf-7f8c-46b1-7047-fcd463487fc7?comp=block\u0026blockid=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-8ce10fa7aa4659459b6a39181a8c1e61-ed66e9c4f9c9a348-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "53cabc64-b150-be67-4d4d-98dd9ae9fc08", + "x-ms-date": "Tue, 18 Aug 2020 15:20:15 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "zg7vB1f7F3CyQzssZJkgCBlwbBwJWKog1YJemVyo/GFV1BL3qM0Hgimt/6twjUtcg0AunKvgSHZkzjHUnX0TCUba14\u002BHKGBLaenzXFj\u002Br0c3ARUcemC2dIybk9mbMuWrmfVklra71Vvg4jPB7esdZR/pnZtn94/mJGIC65SGsDYER8JimhmReyy5O5ct9Iegfi66spVJRKFmfnJTuOrHWjL8vKUpussGWCJvrbz4uS/bYmxmy/2hugMg/BumPcJB8uFlMDjhd8NjtFpy2pblbsVDeFZ9YY40WwGiCL6vXxpfLbvbkoj3\u002BeqpAxajLuBsO45WY8RrxJFSMdQ2P28FtFU/E63bCts8S39r1F54kC0hNcwvWPtV82kqiWCzwbl7pE/BYxsykTGyGhdFAO8z2qCnFAqi1VtZ6R9DsIF6iIrF8DAPtiwR7qObfD7jEPN596/ADK2v2c7zZ3r87\u002BCwOJGNfw\u002B/IyN0lSVmBlkdddkryrnSunzdFRdhG06yFf/C60StVpHkudOLS3aHSdJ01vKg0CUn3X0UsGn4XgjUwX8lpBsVcB5IRxDmRm8GVcxE7UVcEUXamw3GmKYn61vLt4n2YqW2X2bTWIkUQJcODlqds3DCeLA6SwgNTtd4IFu0G4/lD/MnjY7fiLm7xVt2t4pLijfqCD7ZvBacqRCOWjg=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:20:14 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "53cabc64-b150-be67-4d4d-98dd9ae9fc08", + "x-ms-content-crc64": "Arm/am7FI60=", + "x-ms-request-id": "5101888b-301e-006e-7473-75a323000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-6ae0fe47-9d46-17a1-8044-122356f042ad/test-blob-f47ddddf-7f8c-46b1-7047-fcd463487fc7?comp=block\u0026blockid=AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-8ce10fa7aa4659459b6a39181a8c1e61-e70f57bc858f4d41-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "59d8728e-c9d5-cdeb-dd48-73d5fd53942d", + "x-ms-date": "Tue, 18 Aug 2020 15:20:15 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "LV8kByn/Z3Um4uLv9n\u002BGrZeXTCyWJMoSUAtS3IvkflAtgY5lNm6Oi\u002BMUEQglT\u002BI9kO4ReEEuoQmVEbcdrIvqQWSSwXXwIHcpCMFIgRLB7QEpFUyc0wUO/9\u002BEzyS3cd5YKtCjk41sTG936HCA5SD21CS19JY/Tm5fg8GWbFFScZfj8FdCHVlzvMncJeqUjhq\u002Bjvv/AXxIGdtiRBDL1uAdJHbYnPXIs7bLQTjMYimDyvSn191WU3Aam9Z74NlIp\u002BXpvgB0u/Il9dpENMBEe7ey3nkcJP8Cx9EGvgEeTdPcgplS46MoDg8CgeECER6v1iAfyAFgLIPm5vcvbv3wBqgHZ7Im8pcTitBqGqIdALWyVujh/4TRfFYWa/ys\u002BJ8REXs4\u002BqpsieOIDD4x9RHgyeZCfBgVDgckNupcEIaaZpEwWQgn5AULRs0EWfJFoIdENaIVanyH\u002BwNzFMS/D3hc7aWtAJwJuOThNzVLEbUU3pZjGNrkhfwUqF0Es89BSzZUp2tNmJ/qOny\u002BNDNGPOpOXjYtW/eeeGiomFg\u002BBAUUn\u002Bv/9mlJx0X3eN1dJVDJzmxytlWZFPA\u002Bti4DpABGqzZ3qZVHR0aBBJfwNuIaQFIY38rszE2ve4v7wD86RiNFsM2n5Xy6gYYl8bG\u002BqN4NJHbc6sQ2Wt/oyC4KTIcGRr5zq4UVc1o=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:20:14 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "59d8728e-c9d5-cdeb-dd48-73d5fd53942d", + "x-ms-content-crc64": "UDfCQ1O6tvw=", + "x-ms-request-id": "7d907e38-e01e-0001-2373-750bf7000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-6ae0fe47-9d46-17a1-8044-122356f042ad/test-blob-f47ddddf-7f8c-46b1-7047-fcd463487fc7?comp=block\u0026blockid=AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-8ce10fa7aa4659459b6a39181a8c1e61-bc7a512ef1c39740-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "284f1dc7-a311-6333-132d-9f8ef606f8d6", + "x-ms-date": "Tue, 18 Aug 2020 15:20:15 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "1l1eQ8banPHSre2byV5bXg9V7b4dTbA0/x\u002Br8kr9WPixGwWMZvKUBUzWXFxf6zzoYxSbMCe0PImtKUOnLqmn1VT16q1ZzvgcwedyR/BT1RPiw481YSjQ/d573zyu7deiLocIagGOjpUcf24/QfWYWlQwxGsacnMsJO3O3e68bdMQzxlpS2sSUzT5GeK5kLvp4oXnfihriLwT3EUUwLGmXxGbLnHbLw7pHnE2IFiRcpQx5Ppp1e6rpUZcVW8l/pOCUrrQHmFKDbN2/WC3NWhkgmmw4tu2PYoi8Ikqf9mfwx/ds82ewFQy59dH8teO82/e\u002BNMFdBu4zBUvrS7XH47Z1jlA2YGaxcEVfvsEb0qylPwaTIYGmU8EJee4bhMmWshIbRueTRruQzIR8PYgtFzKfRkxvdMH0jzqPLOa4lau7iMzuwEuFEbiLAhU9ahY43GL7fH69J30QJvesxFmU2HbYwHT7fham2jST5HKs92TklhCD/RltPqGPnpmUGE1e9imeJKnhfZ4MFKJJ6QLKY29SiG4I0Rsdq4HTK9\u002B9EsHnNO5JDtL7Axiyt6h3IxWexTtqAU/fVeTOQHjnzhG\u002BjwHgYvQUQVRcl0UVVlmy5oisdGakUtGxx98Juo5Z03TG8\u002BimloBhSkOmzanKif\u002BLW5nwe5nrGnxwLprVCsbFwsQQDo=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:20:14 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "284f1dc7-a311-6333-132d-9f8ef606f8d6", + "x-ms-content-crc64": "C\u002BD5p6jUPmo=", + "x-ms-request-id": "77d5a34f-901e-0068-4973-75545b000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-6ae0fe47-9d46-17a1-8044-122356f042ad/test-blob-f47ddddf-7f8c-46b1-7047-fcd463487fc7?comp=block\u0026blockid=AAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "212", + "traceparent": "00-8ce10fa7aa4659459b6a39181a8c1e61-d61408d5f4dad74a-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "df0dd47e-6c04-aa1c-1a29-6171d81203db", + "x-ms-date": "Tue, 18 Aug 2020 15:20:15 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "icQwPyErp4v1FJ6c\u002BH35e9KmXmxvZrDaoJUw/fODK5bq7HRpPiefwr8gc9wiHXPWMqBFZLLUyiITVp\u002BL\u002BqqYcukIsgsJkDyqBpusT/PUt4MiWstSPsbkFSJRVeiIFMcVhwHyGWpozKJjml0WKHsvPp4caaDeRTQiJJ3puDpTIvLTlsfy4Z4Yuo0p7qNozu2mIhdKbKonN0HMz/XNfhRnEHdrQpG0PFz/A68StVeQulWvQpYiCbZIrF\u002BFJRKoSjt5wd4r/Ytb8eW6Smj6FILqPBWfHTw=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:20:14 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "df0dd47e-6c04-aa1c-1a29-6171d81203db", + "x-ms-content-crc64": "49PZKIZZT3g=", + "x-ms-request-id": "a1030d21-a01e-000d-5873-75e506000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-6ae0fe47-9d46-17a1-8044-122356f042ad/test-blob-f47ddddf-7f8c-46b1-7047-fcd463487fc7?comp=blocklist", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "347", + "Content-Type": "application/xml", + "traceparent": "00-8ce10fa7aa4659459b6a39181a8c1e61-fc4cea7e16d6384b-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "2210b843-18f8-c1d1-8379-8af9af693fbe", + "x-ms-date": "Tue, 18 Aug 2020 15:20:15 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "\u003CBlockList\u003E\u003CLatest\u003EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\u003C/Latest\u003E\u003CLatest\u003EAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\u003C/Latest\u003E\u003CLatest\u003EAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\u003C/Latest\u003E\u003CLatest\u003EAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\u003C/Latest\u003E\u003C/BlockList\u003E", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:20:14 GMT", + "ETag": "\u00220x8D8438A3542BCE5\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:20:15 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "2210b843-18f8-c1d1-8379-8af9af693fbe", + "x-ms-content-crc64": "/6ZdN7JpfFQ=", + "x-ms-request-id": "a1030d65-a01e-000d-1673-75e506000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-6ae0fe47-9d46-17a1-8044-122356f042ad/test-blob-f47ddddf-7f8c-46b1-7047-fcd463487fc7", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-2ac91b4ee353424fb3e18ffb534f4679-de79f5b01273c847-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "1f2eaa66-e002-c3e2-809e-be5a9a8307d8", + "x-ms-date": "Tue, 18 Aug 2020 15:20:15 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "1748", + "Content-Type": "application/octet-stream", + "Date": "Tue, 18 Aug 2020 15:20:14 GMT", + "ETag": "\u00220x8D8438A3542BCE5\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:20:15 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "1f2eaa66-e002-c3e2-809e-be5a9a8307d8", + "x-ms-creation-time": "Tue, 18 Aug 2020 15:20:15 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "a1030d9b-a01e-000d-4a73-75e506000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": "zg7vB1f7F3CyQzssZJkgCBlwbBwJWKog1YJemVyo/GFV1BL3qM0Hgimt/6twjUtcg0AunKvgSHZkzjHUnX0TCUba14\u002BHKGBLaenzXFj\u002Br0c3ARUcemC2dIybk9mbMuWrmfVklra71Vvg4jPB7esdZR/pnZtn94/mJGIC65SGsDYER8JimhmReyy5O5ct9Iegfi66spVJRKFmfnJTuOrHWjL8vKUpussGWCJvrbz4uS/bYmxmy/2hugMg/BumPcJB8uFlMDjhd8NjtFpy2pblbsVDeFZ9YY40WwGiCL6vXxpfLbvbkoj3\u002BeqpAxajLuBsO45WY8RrxJFSMdQ2P28FtFU/E63bCts8S39r1F54kC0hNcwvWPtV82kqiWCzwbl7pE/BYxsykTGyGhdFAO8z2qCnFAqi1VtZ6R9DsIF6iIrF8DAPtiwR7qObfD7jEPN596/ADK2v2c7zZ3r87\u002BCwOJGNfw\u002B/IyN0lSVmBlkdddkryrnSunzdFRdhG06yFf/C60StVpHkudOLS3aHSdJ01vKg0CUn3X0UsGn4XgjUwX8lpBsVcB5IRxDmRm8GVcxE7UVcEUXamw3GmKYn61vLt4n2YqW2X2bTWIkUQJcODlqds3DCeLA6SwgNTtd4IFu0G4/lD/MnjY7fiLm7xVt2t4pLijfqCD7ZvBacqRCOWjgtXyQHKf9ndSbi4u/2f4atl5dMLJYkyhJQC1Lci\u002BR\u002BUC2BjmU2bo6L4xQRCCVP4j2Q7hF4QS6hCZURtx2si\u002BpBZJLBdfAgdykIwUiBEsHtASkVTJzTBQ7/34TPJLdx3lgq0KOTjWxMb3focIDlIPbUJLX0lj9Obl\u002BDwZZsUVJxl\u002BPwV0IdWXO8ydwl6pSOGr6O\u002B/8BfEgZ22JEEMvW4B0kdtic9ciztstBOMxiKYPK9KfX3VZTcBqb1nvg2Uin5em\u002BAHS78iX12kQ0wER7t7LeeRwk/wLH0Qa\u002BAR5N09yCmVLjoygODwKB4QIRHq/WIB/IAWAsg\u002Bbm9y9u/fAGqAdnsibylxOK0Goaoh0AtbJW6OH/hNF8VhZr/Kz4nxERezj6qmyJ44gMPjH1EeDJ5kJ8GBUOByQ26lwQhppmkTBZCCfkBQtGzQRZ8kWgh0Q1ohVqfIf7A3MUxL8PeFztpa0AnAm45OE3NUsRtRTelmMY2uSF/BSoXQSzz0FLNlSna02Yn\u002Bo6fL40M0Y86k5eNi1b9554aKiYWD4EBRSf6//2aUnHRfd43V0lUMnObHK2VZkU8D62LgOkAEarNneplUdHRoEEl/A24hpAUhjfyuzMTa97i/vAPzpGI0WwzaflfLqBhiXxsb6o3g0kdtzqxDZa3\u002BjILgpMhwZGvnOrhRVzWtZdXkPG2pzx0q3tm8leW14PVe2\u002BHU2wNP8fq/JK/Vj4sRsFjGbylAVM1lxcX\u002Bs86GMUmzAntDyJrSlDpy6pp9VU9eqtWc74HMHnckfwU9UT4sOPNWEo0P3ee988ru3Xoi6HCGoBjo6VHH9uP0H1mFpUMMRrGnJzLCTtzt3uvG3TEM8ZaUtrElM0\u002BRniuZC76eKF534oa4i8E9xFFMCxpl8Rmy5x2y8O6R5xNiBYkXKUMeT6adXuq6VGXFVvJf6TglK60B5hSg2zdv1gtzVoZIJpsOLbtj2KIvCJKn/Zn8Mf3bPNnsBUMufXR/LXjvNv3vjTBXQbuMwVL60u1x\u002BO2dY5QNmBmsXBFX77BG9KspT8GkyGBplPBCXnuG4TJlrISG0bnk0a7kMyEfD2ILRcyn0ZMb3TB9I86jyzmuJWru4jM7sBLhRG4iwIVPWoWONxi\u002B3x\u002BvSd9ECb3rMRZlNh22MB0\u002B34Wpto0k\u002BRyrPdk5JYQg/0ZbT6hj56ZlBhNXvYpniSp4X2eDBSiSekCymNvUohuCNEbHauB0yvfvRLB5zTuSQ7S\u002BwMYsreodyMVnsU7agFP31XkzkB4584Rvo8B4GL0FEFUXJdFFVZZsuaIrHRmpFLRscffCbqOWdN0xvPoppaAYUpDps2pyon/i1uZ8HuZ6xp8cC6a1QrGxcLEEA6icQwPyErp4v1FJ6c\u002BH35e9KmXmxvZrDaoJUw/fODK5bq7HRpPiefwr8gc9wiHXPWMqBFZLLUyiITVp\u002BL\u002BqqYcukIsgsJkDyqBpusT/PUt4MiWstSPsbkFSJRVeiIFMcVhwHyGWpozKJjml0WKHsvPp4caaDeRTQiJJ3puDpTIvLTlsfy4Z4Yuo0p7qNozu2mIhdKbKonN0HMz/XNfhRnEHdrQpG0PFz/A68StVeQulWvQpYiCbZIrF\u002BFJRKoSjt5wd4r/Ytb8eW6Smj6FILqPBWfHTw=" + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-6ae0fe47-9d46-17a1-8044-122356f042ad?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-08d05a2811c44042b48e346388af8dae-fae043c1f173034f-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "0592a1f9-203b-fabb-ba62-cc5ee9b8bed4", + "x-ms-date": "Tue, 18 Aug 2020 15:20:15 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:20:14 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "0592a1f9-203b-fabb-ba62-cc5ee9b8bed4", + "x-ms-request-id": "a1030db7-a01e-000d-6373-75e506000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "49686385", + "Storage_TestConfigDefault": "ProductionTenant\nseandevtest\nU2FuaXRpemVk\nhttps://seandevtest.blob.core.windows.net\nhttps://seandevtest.file.core.windows.net\nhttps://seandevtest.queue.core.windows.net\nhttps://seandevtest.table.core.windows.net\n\n\n\n\nhttps://seandevtest-secondary.blob.core.windows.net\nhttps://seandevtest-secondary.file.core.windows.net\nhttps://seandevtest-secondary.queue.core.windows.net\nhttps://seandevtest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seandevtest.blob.core.windows.net/;QueueEndpoint=https://seandevtest.queue.core.windows.net/;FileEndpoint=https://seandevtest.file.core.windows.net/;BlobSecondaryEndpoint=https://seandevtest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seandevtest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seandevtest-secondary.file.core.windows.net/;AccountName=seandevtest;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/UploadAsync_Stream_InvalidStreamPosition.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/UploadAsync_Stream_InvalidStreamPosition.json new file mode 100644 index 0000000000000..a5a566a3291db --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/UploadAsync_Stream_InvalidStreamPosition.json @@ -0,0 +1,71 @@ +{ + "Entries": [ + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-6e964bc8-d6c3-d159-d057-bc2c87fdc41f?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-d4f8dd312a949e4899e4d6eac9905730-2603b0a4f710a24c-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "068b6714-0267-ef0a-d4ad-1d85aba15f78", + "x-ms-date": "Tue, 18 Aug 2020 15:20:14 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:20:12 GMT", + "ETag": "\u00220x8D8438A34755010\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:20:13 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "068b6714-0267-ef0a-d4ad-1d85aba15f78", + "x-ms-request-id": "2ca20714-e01e-004e-3173-75cfef000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-6e964bc8-d6c3-d159-d057-bc2c87fdc41f?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-be62b3b2e6c45c4dbd297b79844d452b-746dede163c8c148-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "ec45dae6-e66d-5661-338a-8f8a7d56859e", + "x-ms-date": "Tue, 18 Aug 2020 15:20:14 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:20:13 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "ec45dae6-e66d-5661-338a-8f8a7d56859e", + "x-ms-request-id": "2ca2074e-e01e-004e-6273-75cfef000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "1039805604", + "Storage_TestConfigDefault": "ProductionTenant\nseandevtest\nU2FuaXRpemVk\nhttps://seandevtest.blob.core.windows.net\nhttps://seandevtest.file.core.windows.net\nhttps://seandevtest.queue.core.windows.net\nhttps://seandevtest.table.core.windows.net\n\n\n\n\nhttps://seandevtest-secondary.blob.core.windows.net\nhttps://seandevtest-secondary.file.core.windows.net\nhttps://seandevtest-secondary.queue.core.windows.net\nhttps://seandevtest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seandevtest.blob.core.windows.net/;QueueEndpoint=https://seandevtest.queue.core.windows.net/;FileEndpoint=https://seandevtest.file.core.windows.net/;BlobSecondaryEndpoint=https://seandevtest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seandevtest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seandevtest-secondary.file.core.windows.net/;AccountName=seandevtest;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/UploadAsync_Stream_InvalidStreamPositionAsync.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/UploadAsync_Stream_InvalidStreamPositionAsync.json new file mode 100644 index 0000000000000..2f4346a2e88f3 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/UploadAsync_Stream_InvalidStreamPositionAsync.json @@ -0,0 +1,71 @@ +{ + "Entries": [ + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-6ebe6fc6-37a4-f44c-859a-05b96ba3bf67?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-be1e1063506e85409704de9d32348d74-7b6e1e21e926b24a-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "395e9f16-9890-e76c-b8c8-606d7b7cc65a", + "x-ms-date": "Tue, 18 Aug 2020 15:20:15 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:20:15 GMT", + "ETag": "\u00220x8D8438A358E6368\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:20:15 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "395e9f16-9890-e76c-b8c8-606d7b7cc65a", + "x-ms-request-id": "76b47a76-301e-0008-5373-751179000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-6ebe6fc6-37a4-f44c-859a-05b96ba3bf67?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-d5caf15e255aa74fa68f28d20d49578f-cc0e7a1597250340-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "3463ca15-5bd3-079c-8a1e-27f75ff9cff4", + "x-ms-date": "Tue, 18 Aug 2020 15:20:16 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:20:15 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "3463ca15-5bd3-079c-8a1e-27f75ff9cff4", + "x-ms-request-id": "76b47aba-301e-0008-1373-751179000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "698423317", + "Storage_TestConfigDefault": "ProductionTenant\nseandevtest\nU2FuaXRpemVk\nhttps://seandevtest.blob.core.windows.net\nhttps://seandevtest.file.core.windows.net\nhttps://seandevtest.queue.core.windows.net\nhttps://seandevtest.table.core.windows.net\n\n\n\n\nhttps://seandevtest-secondary.blob.core.windows.net\nhttps://seandevtest-secondary.file.core.windows.net\nhttps://seandevtest-secondary.queue.core.windows.net\nhttps://seandevtest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seandevtest.blob.core.windows.net/;QueueEndpoint=https://seandevtest.queue.core.windows.net/;FileEndpoint=https://seandevtest.file.core.windows.net/;BlobSecondaryEndpoint=https://seandevtest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seandevtest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seandevtest-secondary.file.core.windows.net/;AccountName=seandevtest;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/UploadAsync_InvalidStreamPosition.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/UploadAsync_InvalidStreamPosition.json new file mode 100644 index 0000000000000..c2428d7093abd --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/UploadAsync_InvalidStreamPosition.json @@ -0,0 +1,71 @@ +{ + "Entries": [ + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-1facb71a-6831-103d-2a3a-53bbea9e770f?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-20615296fa4df4488e77da4033fb5ce9-79af10e2bbf98c41-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "42aeea54-64e8-b5d3-8fce-f6c3b43e2aa0", + "x-ms-date": "Tue, 18 Aug 2020 15:21:14 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:21:13 GMT", + "ETag": "\u00220x8D8438A5874881D\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:21:14 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "42aeea54-64e8-b5d3-8fce-f6c3b43e2aa0", + "x-ms-request-id": "18f7521e-501e-0031-7a73-7551dd000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-1facb71a-6831-103d-2a3a-53bbea9e770f?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-47df7ef6c11d9a49b6826f4ca0f8325f-df3de0cfdd022d4a-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "940a807b-d465-2498-b774-293d14dc3310", + "x-ms-date": "Tue, 18 Aug 2020 15:21:14 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:21:14 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "940a807b-d465-2498-b774-293d14dc3310", + "x-ms-request-id": "18f75275-501e-0031-4973-7551dd000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "577898965", + "Storage_TestConfigDefault": "ProductionTenant\nseandevtest\nU2FuaXRpemVk\nhttps://seandevtest.blob.core.windows.net\nhttps://seandevtest.file.core.windows.net\nhttps://seandevtest.queue.core.windows.net\nhttps://seandevtest.table.core.windows.net\n\n\n\n\nhttps://seandevtest-secondary.blob.core.windows.net\nhttps://seandevtest-secondary.file.core.windows.net\nhttps://seandevtest-secondary.queue.core.windows.net\nhttps://seandevtest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seandevtest.blob.core.windows.net/;QueueEndpoint=https://seandevtest.queue.core.windows.net/;FileEndpoint=https://seandevtest.file.core.windows.net/;BlobSecondaryEndpoint=https://seandevtest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seandevtest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seandevtest-secondary.file.core.windows.net/;AccountName=seandevtest;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/UploadAsync_InvalidStreamPositionAsync.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/UploadAsync_InvalidStreamPositionAsync.json new file mode 100644 index 0000000000000..dea5aa5cff5d9 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/UploadAsync_InvalidStreamPositionAsync.json @@ -0,0 +1,71 @@ +{ + "Entries": [ + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-a083ba67-3703-5bce-be9c-ca8666b05b20?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-59a8f8cc56f6c749a2006eed8b23260c-a4f850ea5ca9e84d-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "0c881458-43b9-4ca2-4372-5b99a2fc2f59", + "x-ms-date": "Tue, 18 Aug 2020 15:21:16 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:21:15 GMT", + "ETag": "\u00220x8D8438A59955348\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:21:16 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "0c881458-43b9-4ca2-4372-5b99a2fc2f59", + "x-ms-request-id": "fe2574a5-e01e-006c-5c73-75a1d9000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-a083ba67-3703-5bce-be9c-ca8666b05b20?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-d070fe7baa23ca4ea8a299d95276dc94-23fee2e16b1a2041-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "43b8690e-e3a0-7ed7-5319-40c938be6185", + "x-ms-date": "Tue, 18 Aug 2020 15:21:16 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:21:16 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "43b8690e-e3a0-7ed7-5319-40c938be6185", + "x-ms-request-id": "fe257513-e01e-006c-4073-75a1d9000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "1646184662", + "Storage_TestConfigDefault": "ProductionTenant\nseandevtest\nU2FuaXRpemVk\nhttps://seandevtest.blob.core.windows.net\nhttps://seandevtest.file.core.windows.net\nhttps://seandevtest.queue.core.windows.net\nhttps://seandevtest.table.core.windows.net\n\n\n\n\nhttps://seandevtest-secondary.blob.core.windows.net\nhttps://seandevtest-secondary.file.core.windows.net\nhttps://seandevtest-secondary.queue.core.windows.net\nhttps://seandevtest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seandevtest.blob.core.windows.net/;QueueEndpoint=https://seandevtest.queue.core.windows.net/;FileEndpoint=https://seandevtest.file.core.windows.net/;BlobSecondaryEndpoint=https://seandevtest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seandevtest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seandevtest-secondary.file.core.windows.net/;AccountName=seandevtest;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/UploadAsync_NonZeroStreamPosition.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/UploadAsync_NonZeroStreamPosition.json new file mode 100644 index 0000000000000..7c7c190a280b5 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/UploadAsync_NonZeroStreamPosition.json @@ -0,0 +1,148 @@ +{ + "Entries": [ + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-5bac527b-d0a5-12dd-6156-139bdd8336d7?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-a7da6b35fde30444a9cf6b6515d9f924-73e9843ebc6cf547-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "e9ec40d6-a274-8664-0ebd-0f9944fc1719", + "x-ms-date": "Tue, 18 Aug 2020 15:21:14 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:21:14 GMT", + "ETag": "\u00220x8D8438A58BFD7A5\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:21:14 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "e9ec40d6-a274-8664-0ebd-0f9944fc1719", + "x-ms-request-id": "bb906c40-a01e-0024-8073-759344000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-5bac527b-d0a5-12dd-6156-139bdd8336d7/test-blob-4dff26c7-2dd5-976f-136c-860493ce8c4c", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-0bcfc6a564e9454ba9f0261b501f3e5f-9bb3c9648b125846-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "d1ddc85a-3ea4-ecf1-ff54-162de9667884", + "x-ms-date": "Tue, 18 Aug 2020 15:21:15 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "PVdaljBEkiI/gPrYWgeMw0tqQz4b/aFqLSgfrlfE8I7UfNrJC85HtCXf0mqky2uiR7KPgQinLkC28GgHJePKepBsBN4tw7d8Io8ZOys2xWK9fWelNW6GLE2aExtlP49BFVfaN8eMdIP7El94jvMUfyoFSqh8JUUi5teRkq\u002BcF\u002BIA1ybTXI6bMAjjqSIODZ1ahZPwYPXnxO8St1Hv\u002BuHUXvt8eLbMQSOcaRmfmHsiFNg5Nw0cq7btGRI2wKQ8rDYmD0smkZXmjURwVPbbRyx076N4tcLUuLJEj1\u002BjlYB\u002BX73jeYgv/IJDU6rIq1fAEdHmwtABw/ZzUVeZ4QE1QvjD8fQ5\u002BM6kRfMgNGIYCwxahH6NvdOvfJvGcCcwlhqADRCxBLljhxgDQn3d4I6UWkVLPl2CqIUlFHVYcoimc67ZoCdRZgZS9/1miXtW0pwNMRXh5Vi8/WWLjPBEChSPXM7OA0BnQvM\u002B\u002BUZfHB4JzkHZS0BzxY5WHKLBxtoWDe3p1i2sh85bpe8housRXOFGgr2va7/THJdAd\u002BadpXwZKOtZdkXxXEdyfaZRUSOiRMDBe0QcZ6EuFbqWbA/ovf9yCHkAuOabVCV2PO4Ygct0njIm3Co4/cFKK2GLW/A3ir\u002Bm3kmpoozZJiYepSqzFZPuIs7cweHVOgq4tYyED/k1P7EucqI=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Content-MD5": "jHuFjRmVad5B0nl263Oomw==", + "Date": "Tue, 18 Aug 2020 15:21:14 GMT", + "ETag": "\u00220x8D8438A58D28EBF\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:21:14 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "d1ddc85a-3ea4-ecf1-ff54-162de9667884", + "x-ms-content-crc64": "MUbh0jHsUV8=", + "x-ms-request-id": "bb906d05-a01e-0024-3473-759344000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-5bac527b-d0a5-12dd-6156-139bdd8336d7/test-blob-4dff26c7-2dd5-976f-136c-860493ce8c4c", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-4d43e24609de9e4c82c0948b98c43ba5-8df5e94d53d57542-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "e9e413c0-a051-43fe-d90f-a6f79ed630f1", + "x-ms-date": "Tue, 18 Aug 2020 15:21:15 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "512", + "Content-MD5": "jHuFjRmVad5B0nl263Oomw==", + "Content-Type": "application/octet-stream", + "Date": "Tue, 18 Aug 2020 15:21:14 GMT", + "ETag": "\u00220x8D8438A58D28EBF\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:21:14 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "e9e413c0-a051-43fe-d90f-a6f79ed630f1", + "x-ms-creation-time": "Tue, 18 Aug 2020 15:21:14 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "bb906d74-a01e-0024-1d73-759344000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": "PVdaljBEkiI/gPrYWgeMw0tqQz4b/aFqLSgfrlfE8I7UfNrJC85HtCXf0mqky2uiR7KPgQinLkC28GgHJePKepBsBN4tw7d8Io8ZOys2xWK9fWelNW6GLE2aExtlP49BFVfaN8eMdIP7El94jvMUfyoFSqh8JUUi5teRkq\u002BcF\u002BIA1ybTXI6bMAjjqSIODZ1ahZPwYPXnxO8St1Hv\u002BuHUXvt8eLbMQSOcaRmfmHsiFNg5Nw0cq7btGRI2wKQ8rDYmD0smkZXmjURwVPbbRyx076N4tcLUuLJEj1\u002BjlYB\u002BX73jeYgv/IJDU6rIq1fAEdHmwtABw/ZzUVeZ4QE1QvjD8fQ5\u002BM6kRfMgNGIYCwxahH6NvdOvfJvGcCcwlhqADRCxBLljhxgDQn3d4I6UWkVLPl2CqIUlFHVYcoimc67ZoCdRZgZS9/1miXtW0pwNMRXh5Vi8/WWLjPBEChSPXM7OA0BnQvM\u002B\u002BUZfHB4JzkHZS0BzxY5WHKLBxtoWDe3p1i2sh85bpe8housRXOFGgr2va7/THJdAd\u002BadpXwZKOtZdkXxXEdyfaZRUSOiRMDBe0QcZ6EuFbqWbA/ovf9yCHkAuOabVCV2PO4Ygct0njIm3Co4/cFKK2GLW/A3ir\u002Bm3kmpoozZJiYepSqzFZPuIs7cweHVOgq4tYyED/k1P7EucqI=" + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-5bac527b-d0a5-12dd-6156-139bdd8336d7?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-a3e7ccaf27c0004aa0a2302d91bbbf0a-f992896c9e466542-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "d56ca49d-8f81-0233-f229-7dc2907d8dfb", + "x-ms-date": "Tue, 18 Aug 2020 15:21:15 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:21:14 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "d56ca49d-8f81-0233-f229-7dc2907d8dfb", + "x-ms-request-id": "bb906dd7-a01e-0024-7c73-759344000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "318012968", + "Storage_TestConfigDefault": "ProductionTenant\nseandevtest\nU2FuaXRpemVk\nhttps://seandevtest.blob.core.windows.net\nhttps://seandevtest.file.core.windows.net\nhttps://seandevtest.queue.core.windows.net\nhttps://seandevtest.table.core.windows.net\n\n\n\n\nhttps://seandevtest-secondary.blob.core.windows.net\nhttps://seandevtest-secondary.file.core.windows.net\nhttps://seandevtest-secondary.queue.core.windows.net\nhttps://seandevtest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seandevtest.blob.core.windows.net/;QueueEndpoint=https://seandevtest.queue.core.windows.net/;FileEndpoint=https://seandevtest.file.core.windows.net/;BlobSecondaryEndpoint=https://seandevtest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seandevtest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seandevtest-secondary.file.core.windows.net/;AccountName=seandevtest;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/UploadAsync_NonZeroStreamPositionAsync.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/UploadAsync_NonZeroStreamPositionAsync.json new file mode 100644 index 0000000000000..3bbfabd92eb66 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/UploadAsync_NonZeroStreamPositionAsync.json @@ -0,0 +1,148 @@ +{ + "Entries": [ + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-be7b1003-b322-5ff5-2de0-486a2ee96060?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-94ef9e6901949f4f936301c1d53f2efa-7c528af0d5c6984f-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "a4b2dc53-2a8b-cb91-3bd0-188610d79851", + "x-ms-date": "Tue, 18 Aug 2020 15:21:16 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:21:15 GMT", + "ETag": "\u00220x8D8438A59CF93B0\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:21:16 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "a4b2dc53-2a8b-cb91-3bd0-188610d79851", + "x-ms-request-id": "1c408e51-f01e-005a-5273-750c8b000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-be7b1003-b322-5ff5-2de0-486a2ee96060/test-blob-cd1bc0fa-9221-7499-7603-aee53287d68b", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-dd5f75bf67aea2498c03454faa5475a8-68c949b5479a6f49-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "397ecb78-f021-2e28-0ee3-2dd4d6f54bed", + "x-ms-date": "Tue, 18 Aug 2020 15:21:16 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "h0J/mdFLHpNtsrze4Q8Jhg/rHK9uL/ZTkZs2zA8I\u002B2PBZgUP5L09kTDQuzV83BDqluyGqmfwyFhMKwg1FVKEZLZZHXoK\u002BqJSrYp/nnTB1rWKSzYiglD80J2twri0CHzeS1Z\u002BI7\u002BW4JtKM/3dcSrji1RSqskbYeJlXUzdXDjpnaQNoFIdQrP29Gqa2E5THl9zyTdjYl2yw\u002BpzGMZyuINjYJVYz9DXxUihXLVfgImTEj7saZMAhjtHW91oqSrtgzvmN3e5\u002B0\u002BOnAPvwgaoU0Jg4AaHhk/wYtpaEXPzbhsetNh5eEkS2hfuXc2PEcM1ngeaCMkkZf3s9dSdXurbmy3n0A4uLtv5TgXvmSiBYVEWJXJsWGVS\u002Bk7ajIJ0dHssEsKfp0C1B3AsobrENMzUa5SDhjl3b0LHlda/U6FYhNmJwoZm4bkQYR4CP7arjcWCBiHu8O1CtaJ/2BFp9bTO0x3gO3JFbYraciUbdS\u002BMHAcRPUyAapPrRgzk5wmopmtqM2yZylJSPZiXE37IJj9y8rsJWLhnTWmJ9fRlYYaAMsu6sUHD8lG1vgC06VcVIyDNcfRNnk6zAuUCENVe7NsSFuGyDXX9rgBqVJm3s2QSc9LTmPCRM5R9B65cwOJ8VtIkodN1YxWqz8L040m1\u002B0\u002BB8JwDilTrgONNNQbGoe4d7v7HkxE=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Content-MD5": "op9BonN6QUiL2Sr6PE5tzg==", + "Date": "Tue, 18 Aug 2020 15:21:15 GMT", + "ETag": "\u00220x8D8438A59DAB84C\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:21:16 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "397ecb78-f021-2e28-0ee3-2dd4d6f54bed", + "x-ms-content-crc64": "5ZZo2WxdcfI=", + "x-ms-request-id": "1c408e78-f01e-005a-7073-750c8b000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-be7b1003-b322-5ff5-2de0-486a2ee96060/test-blob-cd1bc0fa-9221-7499-7603-aee53287d68b", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-f1c911b2647e75439c63a223799d1bdd-7951b941ad30b042-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "3275d81e-5949-a0f0-73e2-ae459b59c65a", + "x-ms-date": "Tue, 18 Aug 2020 15:21:17 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "512", + "Content-MD5": "op9BonN6QUiL2Sr6PE5tzg==", + "Content-Type": "application/octet-stream", + "Date": "Tue, 18 Aug 2020 15:21:15 GMT", + "ETag": "\u00220x8D8438A59DAB84C\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:21:16 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "3275d81e-5949-a0f0-73e2-ae459b59c65a", + "x-ms-creation-time": "Tue, 18 Aug 2020 15:21:16 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "1c408ead-f01e-005a-2373-750c8b000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": "h0J/mdFLHpNtsrze4Q8Jhg/rHK9uL/ZTkZs2zA8I\u002B2PBZgUP5L09kTDQuzV83BDqluyGqmfwyFhMKwg1FVKEZLZZHXoK\u002BqJSrYp/nnTB1rWKSzYiglD80J2twri0CHzeS1Z\u002BI7\u002BW4JtKM/3dcSrji1RSqskbYeJlXUzdXDjpnaQNoFIdQrP29Gqa2E5THl9zyTdjYl2yw\u002BpzGMZyuINjYJVYz9DXxUihXLVfgImTEj7saZMAhjtHW91oqSrtgzvmN3e5\u002B0\u002BOnAPvwgaoU0Jg4AaHhk/wYtpaEXPzbhsetNh5eEkS2hfuXc2PEcM1ngeaCMkkZf3s9dSdXurbmy3n0A4uLtv5TgXvmSiBYVEWJXJsWGVS\u002Bk7ajIJ0dHssEsKfp0C1B3AsobrENMzUa5SDhjl3b0LHlda/U6FYhNmJwoZm4bkQYR4CP7arjcWCBiHu8O1CtaJ/2BFp9bTO0x3gO3JFbYraciUbdS\u002BMHAcRPUyAapPrRgzk5wmopmtqM2yZylJSPZiXE37IJj9y8rsJWLhnTWmJ9fRlYYaAMsu6sUHD8lG1vgC06VcVIyDNcfRNnk6zAuUCENVe7NsSFuGyDXX9rgBqVJm3s2QSc9LTmPCRM5R9B65cwOJ8VtIkodN1YxWqz8L040m1\u002B0\u002BB8JwDilTrgONNNQbGoe4d7v7HkxE=" + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-be7b1003-b322-5ff5-2de0-486a2ee96060?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-7eca4fc9c449e64d9247ea32005e8cec-8214bfa237eacd47-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "feb6657c-1980-0da4-4e50-e1a9971bee63", + "x-ms-date": "Tue, 18 Aug 2020 15:21:17 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:21:15 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "feb6657c-1980-0da4-4e50-e1a9971bee63", + "x-ms-request-id": "1c408eef-f01e-005a-5e73-750c8b000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "1199385771", + "Storage_TestConfigDefault": "ProductionTenant\nseandevtest\nU2FuaXRpemVk\nhttps://seandevtest.blob.core.windows.net\nhttps://seandevtest.file.core.windows.net\nhttps://seandevtest.queue.core.windows.net\nhttps://seandevtest.table.core.windows.net\n\n\n\n\nhttps://seandevtest-secondary.blob.core.windows.net\nhttps://seandevtest-secondary.file.core.windows.net\nhttps://seandevtest-secondary.queue.core.windows.net\nhttps://seandevtest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seandevtest.blob.core.windows.net/;QueueEndpoint=https://seandevtest.queue.core.windows.net/;FileEndpoint=https://seandevtest.file.core.windows.net/;BlobSecondaryEndpoint=https://seandevtest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seandevtest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seandevtest-secondary.file.core.windows.net/;AccountName=seandevtest;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocks.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocks.json new file mode 100644 index 0000000000000..902cdf30dab94 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocks.json @@ -0,0 +1,278 @@ +{ + "Entries": [ + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-cf7e3889-8c87-1272-f2d8-ea005872cf5b?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-6dd62ee396b1be4fa8d82f3ab7f211d1-aff07ce4d153fe41-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "9063bba6-81c8-8a62-b202-f5897df69482", + "x-ms-date": "Tue, 18 Aug 2020 15:32:11 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:32:11 GMT", + "ETag": "\u00220x8D8438BE03F8CE5\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:32:11 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "9063bba6-81c8-8a62-b202-f5897df69482", + "x-ms-request-id": "d7db4632-f01e-003c-6674-75bed1000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-cf7e3889-8c87-1272-f2d8-ea005872cf5b/test-blob-5fbceb38-ae3e-2b26-e245-bef70d07b7d9?comp=block\u0026blockid=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-7eb00be8a659b44f94684f5d3f8a2acd-c399a856a1e0c54b-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "def8c96f-077d-2419-32f3-885e556a9c68", + "x-ms-date": "Tue, 18 Aug 2020 15:32:12 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "gid2VDRhmy/X\u002BTGBDUYPLvqN7bvQKJv67TvXgcPLCDuFUuYS6MVgTgK7Pf7K2MroxImLaU4PLFmMfGb4ihpsC/D2\u002B7pg/UY0LZ\u002B5FeudLxVw77w6P5/sdSaMhmxeZ8ToTjEN09wPiMZDVjuvVhZu7kxRiJpdMstRCoaU03fa1cbb0Ma5kFw4YWf19uhjPR8PHpcfDd4pihxlu8lWe7RPaYF104VQtF7wGSczZzvi7sxmhLTgusjnsUapU9SS4uWypo1n7mmZv2o4L/S39iPhgs397/cAbq\u002B5jSE/pmCKXjdBgMGue/9jzMVJp4rUL7siyNEHlfLusTfermFHWhgJrtG9dnViMgfNmSIxtsck5V1lHN6PgslEU8\u002BJz82eG3KtQPi4F7lGwJXJOfvQvPtwuckD4T45eisIeCKl2GM6Ln6whHbOa86jH1tIxUnNdJbUGBYDmzkzc8XNsJ6WoOgyjwt9HziEok37YMLi8bTiOgSM0cBMNpNEfBCwAbsvDH5zFjY9UFRdT3XICDt3UYIR6nWaCs4n5Vh4OKMn06GSy1NDb9t\u002BpOqvLoJKgy1XzCqOnxZFlAKvSzDdxRewNnzUNjzoM\u002BKnkkaL69tM3GIqIGt4mTSKTDZQlCOroN7S/vgGdkzxb5lI5gzQuqkmYm7NsqWsOJxHSeoGl5\u002B\u002B/PJnuew=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:32:11 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "def8c96f-077d-2419-32f3-885e556a9c68", + "x-ms-content-crc64": "HUAiI98wSGc=", + "x-ms-request-id": "d7db474c-f01e-003c-6674-75bed1000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-cf7e3889-8c87-1272-f2d8-ea005872cf5b/test-blob-5fbceb38-ae3e-2b26-e245-bef70d07b7d9?comp=block\u0026blockid=AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-7eb00be8a659b44f94684f5d3f8a2acd-ebd5b7adb71fc74c-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "4bef7878-adb4-10ae-1e7c-0dd26f753423", + "x-ms-date": "Tue, 18 Aug 2020 15:32:12 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "40ZmFTmw0i\u002ByJ7qRjCkxtN3tOSbGW74sYuvY\u002BYrqGmgBvUMbCLh59dkI6SCOWXltbgofBC6SJoeIObNO19ilyAxSkM/lFawkdENMvXGdnghxaot/yxY6bpe8k84FKh0AYyETPMmph1he\u002Bo/qRWgV65uq3G1NJfz2FyE4KYLdH0omTFpPiWE/x\u002BMzIdCGTygupqgyWk2wsz0lHCSocV3WgNtFxPkNxmE6ahSKGgMrcMj4CYPaq8T8dpkcKm08l1aFXKH1QIsvIeBH9\u002B84Jpk5\u002Baxcr2ja/NQXSU1g8Zvz/dO\u002BBb1iNi88yeijkrPUw1D/4jHA3\u002BjtqmDM3vc\u002Bzi9EU/oceiHb18N8IOWANmkhQoX9YA5qMx7r0VpdlVc3/vu4Xj\u002B5t0kvJAttRL8CbXT3q5tyQG0h2iDbMKnGfkFrRCHqyNgpZ4s7zTwD/O5e6WPmZeq8xb2NloQf3YegaKXJAv\u002BdF6SbzUMQNnMxHt4xfUdF4BhXrn9kXTFTCYoEm2WWOfnvwNG\u002BSpinq45KXHim7mA/W4eNclN/ObpzSMO4DJsNm\u002BTkQbx1hpaAsAPxGQC4rRsqxD/dCcemcIcXSwLU7p/yPMGUwa2jydXwDMFQjiC5upqojkdbMJIcPtA1XjqUrMFj/tw/JOtuhvpq7PwFVeJmXZBnK19Xlgwvd4Pcbms=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:32:11 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "4bef7878-adb4-10ae-1e7c-0dd26f753423", + "x-ms-content-crc64": "9DB7dDwIliY=", + "x-ms-request-id": "d7db47d6-f01e-003c-6674-75bed1000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-cf7e3889-8c87-1272-f2d8-ea005872cf5b/test-blob-5fbceb38-ae3e-2b26-e245-bef70d07b7d9?comp=block\u0026blockid=AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-7eb00be8a659b44f94684f5d3f8a2acd-8ad886995feb1d40-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "dde6d0cb-507b-86b4-cec9-2bda30f8e11a", + "x-ms-date": "Tue, 18 Aug 2020 15:32:12 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "mlxg/\u002ByPQ3mVrjoHTfFDlRbo7s4Aqi2AYgxn0BCtaJEYj9CQmwVoUyPj\u002BrnxVwqlyJlgmu6favAv4J3gJ3Np6Eao770hs/oQgJurHa9zjgoCwgd3Tc2jeCTgYLpoiCuvehJySGhMgxSeTxpT9E1Au1KS3mRr8pt4BXaZQVI/qPdv\u002B6KcAEWitj7y2P2yUITXn6Vo1arHQ4h3\u002BkPxskLCXqci5Piqo7oM8CgleRmdxrXxwqGt19JNqLcaJQYCsAP8MHlWj2yMLPvrW\u002BSCocpu2TSO//CgFYfU1TtAj36zCkAkKUigRzZJZZWmwnvuywbtrEvSc7ASWxvygrowS5x8N1GkXXeCzpL9RZpb\u002BlIL5Qk1U\u002BMy4ZaPEs4trsV7GRn5KYoqSm6Pa9651C4Wt2HI5pyw\u002Bvi5Sla6FEupVB/NgiyAYtDI4ZubpugFeAxoeVptZMgoyh4hP980cDUj5ha\u002B7FICllWQAAQAFVQQs9FJUZrwO/BXpLcNXyLxk3FmeL/RR4y6ZeME3GTDKLXJEIwN6x6aMqomZkib9DYzn22Tmp2UPmxFj\u002By361\u002BLlHsBRE6V5KhTy0UVq\u002BBDHnGs0T33L44XNNIfx1sy40ZLmtHMmbDonbvEQM5Xf5KLAXB6ChohlGXt6g98dRxMIOj/yhEPd4XAwzOCMu6/wLU/k8Xrt9g=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:32:11 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "dde6d0cb-507b-86b4-cec9-2bda30f8e11a", + "x-ms-content-crc64": "XaxamBeOl6g=", + "x-ms-request-id": "d7db482a-f01e-003c-3774-75bed1000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-cf7e3889-8c87-1272-f2d8-ea005872cf5b/test-blob-5fbceb38-ae3e-2b26-e245-bef70d07b7d9?comp=block\u0026blockid=AAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "212", + "traceparent": "00-7eb00be8a659b44f94684f5d3f8a2acd-95c870d14b112445-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "9f0677ef-578f-0fa7-c346-114f85500006", + "x-ms-date": "Tue, 18 Aug 2020 15:32:12 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "LCkFbN6uoGwnnncf5li1gXyK6rlG5p9idi4qWjziVmFpD9OgDKKY1iBXDOO6z9lo/74XOwD9kUWJovawhEYvRUcWttaEFHXa8ROZ79q8qKdVwVp\u002Byhtga32NFmms6FHaJ8aboxgC4\u002BtJPUnsY6JqzfpOWsLrsXostUpY9v0LLQjBv8cUIASOU95vNY3RdAfbIkhuXY6O7nZLb\u002B7OqeztPQ9AK6TaVq32wAfkfHvtWkFCfdS1nM96MtBQyLEVv6nygfh\u002BkEljAMybeJ2GqnL7XhSsjCs=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:32:11 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "9f0677ef-578f-0fa7-c346-114f85500006", + "x-ms-content-crc64": "eJowhogOHCo=", + "x-ms-request-id": "d7db489b-f01e-003c-2274-75bed1000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-cf7e3889-8c87-1272-f2d8-ea005872cf5b/test-blob-5fbceb38-ae3e-2b26-e245-bef70d07b7d9?comp=blocklist", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "347", + "Content-Type": "application/xml", + "traceparent": "00-7eb00be8a659b44f94684f5d3f8a2acd-8923049d3b4b6b4c-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "b9eb8782-41f1-ea8b-732f-5c88355042fb", + "x-ms-date": "Tue, 18 Aug 2020 15:32:12 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "\u003CBlockList\u003E\u003CLatest\u003EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\u003C/Latest\u003E\u003CLatest\u003EAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\u003C/Latest\u003E\u003CLatest\u003EAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\u003C/Latest\u003E\u003CLatest\u003EAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\u003C/Latest\u003E\u003C/BlockList\u003E", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:32:11 GMT", + "ETag": "\u00220x8D8438BE08D36E8\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:32:11 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "b9eb8782-41f1-ea8b-732f-5c88355042fb", + "x-ms-content-crc64": "/6ZdN7JpfFQ=", + "x-ms-request-id": "d7db4937-f01e-003c-2f74-75bed1000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-cf7e3889-8c87-1272-f2d8-ea005872cf5b/test-blob-5fbceb38-ae3e-2b26-e245-bef70d07b7d9", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-6880d0fbdf98474cb5b9b52fcbe4456c-39e032177252ac46-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "fecceb1e-4765-8515-a8d9-3b0c103d4ddf", + "x-ms-date": "Tue, 18 Aug 2020 15:32:12 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "1748", + "Content-Type": "application/octet-stream", + "Date": "Tue, 18 Aug 2020 15:32:11 GMT", + "ETag": "\u00220x8D8438BE08D36E8\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:32:11 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "fecceb1e-4765-8515-a8d9-3b0c103d4ddf", + "x-ms-creation-time": "Tue, 18 Aug 2020 15:32:11 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "d7db49d1-f01e-003c-3a74-75bed1000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": "gid2VDRhmy/X\u002BTGBDUYPLvqN7bvQKJv67TvXgcPLCDuFUuYS6MVgTgK7Pf7K2MroxImLaU4PLFmMfGb4ihpsC/D2\u002B7pg/UY0LZ\u002B5FeudLxVw77w6P5/sdSaMhmxeZ8ToTjEN09wPiMZDVjuvVhZu7kxRiJpdMstRCoaU03fa1cbb0Ma5kFw4YWf19uhjPR8PHpcfDd4pihxlu8lWe7RPaYF104VQtF7wGSczZzvi7sxmhLTgusjnsUapU9SS4uWypo1n7mmZv2o4L/S39iPhgs397/cAbq\u002B5jSE/pmCKXjdBgMGue/9jzMVJp4rUL7siyNEHlfLusTfermFHWhgJrtG9dnViMgfNmSIxtsck5V1lHN6PgslEU8\u002BJz82eG3KtQPi4F7lGwJXJOfvQvPtwuckD4T45eisIeCKl2GM6Ln6whHbOa86jH1tIxUnNdJbUGBYDmzkzc8XNsJ6WoOgyjwt9HziEok37YMLi8bTiOgSM0cBMNpNEfBCwAbsvDH5zFjY9UFRdT3XICDt3UYIR6nWaCs4n5Vh4OKMn06GSy1NDb9t\u002BpOqvLoJKgy1XzCqOnxZFlAKvSzDdxRewNnzUNjzoM\u002BKnkkaL69tM3GIqIGt4mTSKTDZQlCOroN7S/vgGdkzxb5lI5gzQuqkmYm7NsqWsOJxHSeoGl5\u002B\u002B/PJnuezjRmYVObDSL7InupGMKTG03e05JsZbvixi69j5iuoaaAG9QxsIuHn12QjpII5ZeW1uCh8ELpImh4g5s07X2KXIDFKQz\u002BUVrCR0Q0y9cZ2eCHFqi3/LFjpul7yTzgUqHQBjIRM8yamHWF76j\u002BpFaBXrm6rcbU0l/PYXITgpgt0fSiZMWk\u002BJYT/H4zMh0IZPKC6mqDJaTbCzPSUcJKhxXdaA20XE\u002BQ3GYTpqFIoaAytwyPgJg9qrxPx2mRwqbTyXVoVcofVAiy8h4Ef37zgmmTn5rFyvaNr81BdJTWDxm/P9074FvWI2LzzJ6KOSs9TDUP/iMcDf6O2qYMze9z7OL0RT\u002Bhx6IdvXw3wg5YA2aSFChf1gDmozHuvRWl2VVzf\u002B\u002B7heP7m3SS8kC21EvwJtdPerm3JAbSHaINswqcZ\u002BQWtEIerI2ClnizvNPAP87l7pY\u002BZl6rzFvY2WhB/dh6BopckC/50XpJvNQxA2czEe3jF9R0XgGFeuf2RdMVMJigSbZZY5\u002Be/A0b5KmKerjkpceKbuYD9bh41yU385unNIw7gMmw2b5ORBvHWGloCwA/EZALitGyrEP90Jx6ZwhxdLAtTun/I8wZTBraPJ1fAMwVCOILm6mqiOR1swkhw\u002B0DVeOpSswWP\u002B3D8k626G\u002Bmrs/AVV4mZdkGcrX1eWDC93g9xua5pcYP/sj0N5la46B03xQ5UW6O7OAKotgGIMZ9AQrWiRGI/QkJsFaFMj4/q58VcKpciZYJrun2rwL\u002BCd4CdzaehGqO\u002B9IbP6EICbqx2vc44KAsIHd03No3gk4GC6aIgrr3oSckhoTIMUnk8aU/RNQLtSkt5ka/KbeAV2mUFSP6j3b/uinABForY\u002B8tj9slCE15\u002BlaNWqx0OId/pD8bJCwl6nIuT4qqO6DPAoJXkZnca18cKhrdfSTai3GiUGArAD/DB5Vo9sjCz761vkgqHKbtk0jv/woBWH1NU7QI9\u002BswpAJClIoEc2SWWVpsJ77ssG7axL0nOwElsb8oK6MEucfDdRpF13gs6S/UWaW/pSC\u002BUJNVPjMuGWjxLOLa7FexkZ\u002BSmKKkpuj2veudQuFrdhyOacsPr4uUpWuhRLqVQfzYIsgGLQyOGbm6boBXgMaHlabWTIKMoeIT/fNHA1I\u002BYWvuxSApZVkAAEABVUELPRSVGa8DvwV6S3DV8i8ZNxZni/0UeMumXjBNxkwyi1yRCMDesemjKqJmZIm/Q2M59tk5qdlD5sRY/st\u002Btfi5R7AUROleSoU8tFFavgQx5xrNE99y\u002BOFzTSH8dbMuNGS5rRzJmw6J27xEDOV3\u002BSiwFwegoaIZRl7eoPfHUcTCDo/8oRD3eFwMMzgjLuv8C1P5PF67fYLCkFbN6uoGwnnncf5li1gXyK6rlG5p9idi4qWjziVmFpD9OgDKKY1iBXDOO6z9lo/74XOwD9kUWJovawhEYvRUcWttaEFHXa8ROZ79q8qKdVwVp\u002Byhtga32NFmms6FHaJ8aboxgC4\u002BtJPUnsY6JqzfpOWsLrsXostUpY9v0LLQjBv8cUIASOU95vNY3RdAfbIkhuXY6O7nZLb\u002B7OqeztPQ9AK6TaVq32wAfkfHvtWkFCfdS1nM96MtBQyLEVv6nygfh\u002BkEljAMybeJ2GqnL7XhSsjCs=" + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-cf7e3889-8c87-1272-f2d8-ea005872cf5b?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-43c7eee85299f544be0c9b308055445c-5c7dbfbe9323094d-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "4a6a4024-4483-7695-30c1-81095b5b7272", + "x-ms-date": "Tue, 18 Aug 2020 15:32:12 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:32:12 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "4a6a4024-4483-7695-30c1-81095b5b7272", + "x-ms-request-id": "d7db4bf3-f01e-003c-4274-75bed1000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "1777746631", + "Storage_TestConfigDefault": "ProductionTenant\nseandevtest\nU2FuaXRpemVk\nhttps://seandevtest.blob.core.windows.net\nhttps://seandevtest.file.core.windows.net\nhttps://seandevtest.queue.core.windows.net\nhttps://seandevtest.table.core.windows.net\n\n\n\n\nhttps://seandevtest-secondary.blob.core.windows.net\nhttps://seandevtest-secondary.file.core.windows.net\nhttps://seandevtest-secondary.queue.core.windows.net\nhttps://seandevtest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seandevtest.blob.core.windows.net/;QueueEndpoint=https://seandevtest.queue.core.windows.net/;FileEndpoint=https://seandevtest.file.core.windows.net/;BlobSecondaryEndpoint=https://seandevtest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seandevtest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seandevtest-secondary.file.core.windows.net/;AccountName=seandevtest;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocksAsync.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocksAsync.json new file mode 100644 index 0000000000000..9fd1bafa4caae --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocksAsync.json @@ -0,0 +1,278 @@ +{ + "Entries": [ + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-15649c23-ca2f-0b95-0943-840beb4b5574?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-615160926325364e81d481ce66cfb0c5-796d9b1e03ea2246-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "67e2bf2f-b866-c25b-ef6f-e1f14b9fa5d8", + "x-ms-date": "Tue, 18 Aug 2020 15:21:17 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:21:16 GMT", + "ETag": "\u00220x8D8438A5A1EA0C7\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:21:16 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "67e2bf2f-b866-c25b-ef6f-e1f14b9fa5d8", + "x-ms-request-id": "47613824-701e-004b-2b73-753b90000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-15649c23-ca2f-0b95-0943-840beb4b5574/test-blob-b17b3527-158d-f374-cb2e-4b2dd017dc8e?comp=block\u0026blockid=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-88addf4fb79847438ceb6f8277ff482f-378d8edf8281b24b-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "54a8d100-62b5-07b0-1105-237013b95fe3", + "x-ms-date": "Tue, 18 Aug 2020 15:21:17 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "QDpMipI908jSSzKPjvIkfq9fnGrqQ7Mk72Wmcwxyql5hwKjbRFj0LMziH9gKTT3vOjOdU2HkzfyHJ5stll\u002B7X6DULc5KSTlWa2\u002BeByPaGaEntznZ1Fb9ffOrUx29xpVtJ8A3Nh9vpfD6R\u002BjxRcXZrA75Bd8l4YpK16/bnvUcmaTaMeBjo\u002BOBuBJI3o1uCzgt0qcOw8G1R0U17V5wlAf73q5DFxTldgkqeE3N3QL928t3rctNDdXjJOmaLbWEESMKTADfK/QjSFue5Etz6GlCOBGT\u002BOc7rdDZX/IqS0hTpWYpwpACHrDXVGRvryiJbzuAV/Wk8Rk8z58wBssB\u002BP0TSj7lSiXZQBlhvKOCy/6nUPC2qvNTr7RM7PPx0Rfl1VtmXGTqoyUWphbbQjV1ugShiLbbSk4JwJuKmF0y524Be\u002BZIG26ZvazKoAPdd2x\u002B1jLvUElhCooNXZzIXwrI476n2cdOLZ6VB8sJEKpKK0gvC8EqQ5cloHFcOr7R0F2hAr1FNp2kL6mUWUh9WPngwjFUmVRJnZ8ngTlV8vLgwzdtZw7sBfWqitsYlupOp0d4e3iMfTcJWGUdHrRkTz22tJUREPDr8707qQ54MAa12Nny3XZ6U0b/ZA\u002Bpz\u002BdBRjueYuJUPZdWjYi7UdMokCheZ0XacnHGO2BOEavhQiTV\u002BmLT2s0=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:21:16 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "54a8d100-62b5-07b0-1105-237013b95fe3", + "x-ms-content-crc64": "1GsGKKG3\u002BgE=", + "x-ms-request-id": "4761384d-701e-004b-4b73-753b90000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-15649c23-ca2f-0b95-0943-840beb4b5574/test-blob-b17b3527-158d-f374-cb2e-4b2dd017dc8e?comp=block\u0026blockid=AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-88addf4fb79847438ceb6f8277ff482f-f9bae94eda73ff49-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "d4f1bea4-ddaf-dc9a-af1f-ccff3264a66e", + "x-ms-date": "Tue, 18 Aug 2020 15:21:17 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "JGCaQptQ7r8CctfU50pnoWbUydgngQYr7HVLZOVWcFW1WjkHq5jWIdh8Xtw61vr3vDSUjgkCpqNablYmBYnaqwGCHowRYPbO/aj/qyIq8RV6U6ewwuJLs7SVrDxCsBtOobLat7ht5Vw\u002BxZBhAvuAMHxAq7HhKekfNmrYe7O5jE2MsQlwTzpdDG5LcfxS6rG4FXy/AQVqbHjJu4FNlWmphTlD1FHxEOBC4p5DlrfszEy5H2Y2\u002BYpHIkSRppS5EHcEoezDDxVgxwSbfB5nJ9bA3O40k3UDc4uu\u002B7IMYGlMidImPvTLKb03WVhhmn1r4Ptu0cqlhHwBAS5hFBNiU2abT/NMQOjh9bMw/TododgNQhq3no6fpgRVJDzGaRSp1AXxxkqJH6ASjdwWdYdC5GBVU9H5q7XY\u002B6nu9hurGoufhig0K9qOhCN6pRCyiDF9E0DccBVCsChQGcuhmyiEZnJQd\u002B5eDriFx8\u002BufgakJXN4cePbz6p2Xdb/4xIP7Oj69j6eYhBCHgSHVqhFkzIiq/RXKCpFqJbI2hoYXyqmdtrns4fHBsNjNVLfVHgBMMmj3Tget8O9tU6n1of2Kr/Z4ODOXt\u002BqWqUw9PPXZVMexqlQdIHyiL4WKf45IDA7bAqTBXSYM9Hp\u002BYOS7cPQ5k/6iQ/epbY95lchtzXhcDp19YfoRGA=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:21:16 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "d4f1bea4-ddaf-dc9a-af1f-ccff3264a66e", + "x-ms-content-crc64": "N2PpEvPe/NA=", + "x-ms-request-id": "db71fd1c-d01e-002b-1e73-757eb2000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-15649c23-ca2f-0b95-0943-840beb4b5574/test-blob-b17b3527-158d-f374-cb2e-4b2dd017dc8e?comp=block\u0026blockid=AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-88addf4fb79847438ceb6f8277ff482f-5cc791e7d1bd884d-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "55cb3ccf-8bc8-d934-ad5d-888014061b52", + "x-ms-date": "Tue, 18 Aug 2020 15:21:17 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "34WT2Gd6/V\u002Bb\u002BkZCrj\u002BWIF3HVFUeHHd8nAeJSR33POei7xsDfAU9Oz\u002BHvCZw8jMxo1SXv5PuQcMOFjtf8bRCo75eoL4kkqRXiRkVl19QC6rUV6XIX3xUs65X9WXK3kmLRBlnElF0DRCwQDV62KljvQuRipoOeUNCCu0QzJ0\u002BjavPilJG6flYYEqUGB9G2dsE8zdaOFOvfMvVJQdkY0BzcbOKqk1WHdQROSpPemAj\u002BzARDNhl5FRYIA2HcMPy8/wJIaZsvC\u002BNrdZjSP8oXwJqsSrWUldoDo1eMolAz6wRH0UuRli6tz4BhF8BAptUL8ELHL6ZG6GloRIZDYqlTd0qUSm6\u002BhmpsPrr1c74ZgvxCgLINLPteAOkiaVFoaq0WzaB17BymjWnYWvErUXSrToHJwOI3RgpPNklFnF0Yw9PN3qXdo9bf2/MINJIKcq\u002B0dtqPnmnLH0eV5rWTIPEM/5cdHbKOjarq6iTu7xF4RMOZ0SVCSSVqAr8eR70hDLsCO3U67RU85alv5PRFHHB2HaHyOU\u002BLynZxsxrzsEXtyZ1p7LPcfVfunOu70qRxJSZOqGobLxNrdnD\u002ByXn6CXVjgdsXGy\u002B8maAJw1xkD/fRwI30pMfbkpqKPrZC3bQd9FO2GFCJWgn2kg6KESu2xyZ47MisBaRtR\u002B9ATNy5ebwsLA8I7g=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:21:16 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "55cb3ccf-8bc8-d934-ad5d-888014061b52", + "x-ms-content-crc64": "u9HVxhGIJhY=", + "x-ms-request-id": "c2e73b45-301e-0065-2673-75bb57000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-15649c23-ca2f-0b95-0943-840beb4b5574/test-blob-b17b3527-158d-f374-cb2e-4b2dd017dc8e?comp=block\u0026blockid=AAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "212", + "traceparent": "00-88addf4fb79847438ceb6f8277ff482f-c38bd599ffdf514a-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "f6306e3d-5098-d7a6-eea5-aa702e760ac4", + "x-ms-date": "Tue, 18 Aug 2020 15:21:17 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "3pwimhD3SuVGBbtM3kAnwq3HurwjQoQjNLT1YUl4lHK4Y7tHkIifH0bQ2LhG55Skvy0C6YFmlZwY/2ZbAembznFJlHqF4DIlJ5t2U2nM3U0gUaIcdavxUs4eLpAhRB1dNApH/FIaH9773MHl70IySyIZO7BHf1jFWEGrZrGhA\u002BJ\u002BGB5eheD6BTHDIJjpC2KM6\u002BNuCAlsFrSygaQRbrktWdneZ9cj1MVCHzV/g16/3EzfH3rOM/vZEQJprAQ76JZ4lsa/C6SLaRcdLOnU7ZJW8qVXMU8=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:21:16 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "f6306e3d-5098-d7a6-eea5-aa702e760ac4", + "x-ms-content-crc64": "VkVzv8MYm74=", + "x-ms-request-id": "45f6b78b-c01e-0034-3e73-75a5a2000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-15649c23-ca2f-0b95-0943-840beb4b5574/test-blob-b17b3527-158d-f374-cb2e-4b2dd017dc8e?comp=blocklist", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "347", + "Content-Type": "application/xml", + "traceparent": "00-88addf4fb79847438ceb6f8277ff482f-42fbc9a9f09d734a-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "a5432cf4-24d5-b8b9-da23-148f34a9bf4f", + "x-ms-date": "Tue, 18 Aug 2020 15:21:17 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "\u003CBlockList\u003E\u003CLatest\u003EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\u003C/Latest\u003E\u003CLatest\u003EAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\u003C/Latest\u003E\u003CLatest\u003EAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\u003C/Latest\u003E\u003CLatest\u003EAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\u003C/Latest\u003E\u003C/BlockList\u003E", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:21:16 GMT", + "ETag": "\u00220x8D8438A5A5D9419\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:21:17 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "a5432cf4-24d5-b8b9-da23-148f34a9bf4f", + "x-ms-content-crc64": "/6ZdN7JpfFQ=", + "x-ms-request-id": "45f6b7c2-c01e-0034-6b73-75a5a2000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-15649c23-ca2f-0b95-0943-840beb4b5574/test-blob-b17b3527-158d-f374-cb2e-4b2dd017dc8e", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-90fa38d8574d8a4ab33d565e11d73d06-92a3fa44585dfb49-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "017b900c-6433-1bef-9144-1836ca9abb79", + "x-ms-date": "Tue, 18 Aug 2020 15:21:17 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "1748", + "Content-Type": "application/octet-stream", + "Date": "Tue, 18 Aug 2020 15:21:16 GMT", + "ETag": "\u00220x8D8438A5A5D9419\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:21:17 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "017b900c-6433-1bef-9144-1836ca9abb79", + "x-ms-creation-time": "Tue, 18 Aug 2020 15:21:17 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "45f6b7f6-c01e-0034-1773-75a5a2000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": "QDpMipI908jSSzKPjvIkfq9fnGrqQ7Mk72Wmcwxyql5hwKjbRFj0LMziH9gKTT3vOjOdU2HkzfyHJ5stll\u002B7X6DULc5KSTlWa2\u002BeByPaGaEntznZ1Fb9ffOrUx29xpVtJ8A3Nh9vpfD6R\u002BjxRcXZrA75Bd8l4YpK16/bnvUcmaTaMeBjo\u002BOBuBJI3o1uCzgt0qcOw8G1R0U17V5wlAf73q5DFxTldgkqeE3N3QL928t3rctNDdXjJOmaLbWEESMKTADfK/QjSFue5Etz6GlCOBGT\u002BOc7rdDZX/IqS0hTpWYpwpACHrDXVGRvryiJbzuAV/Wk8Rk8z58wBssB\u002BP0TSj7lSiXZQBlhvKOCy/6nUPC2qvNTr7RM7PPx0Rfl1VtmXGTqoyUWphbbQjV1ugShiLbbSk4JwJuKmF0y524Be\u002BZIG26ZvazKoAPdd2x\u002B1jLvUElhCooNXZzIXwrI476n2cdOLZ6VB8sJEKpKK0gvC8EqQ5cloHFcOr7R0F2hAr1FNp2kL6mUWUh9WPngwjFUmVRJnZ8ngTlV8vLgwzdtZw7sBfWqitsYlupOp0d4e3iMfTcJWGUdHrRkTz22tJUREPDr8707qQ54MAa12Nny3XZ6U0b/ZA\u002Bpz\u002BdBRjueYuJUPZdWjYi7UdMokCheZ0XacnHGO2BOEavhQiTV\u002BmLT2s0kYJpCm1DuvwJy19TnSmehZtTJ2CeBBivsdUtk5VZwVbVaOQermNYh2Hxe3DrW\u002Bve8NJSOCQKmo1puViYFidqrAYIejBFg9s79qP\u002BrIirxFXpTp7DC4kuztJWsPEKwG06hstq3uG3lXD7FkGEC\u002B4AwfECrseEp6R82ath7s7mMTYyxCXBPOl0Mbktx/FLqsbgVfL8BBWpseMm7gU2VaamFOUPUUfEQ4ELinkOWt\u002BzMTLkfZjb5ikciRJGmlLkQdwSh7MMPFWDHBJt8Hmcn1sDc7jSTdQNzi677sgxgaUyJ0iY\u002B9MspvTdZWGGafWvg\u002B27RyqWEfAEBLmEUE2JTZptP80xA6OH1szD9Oh2h2A1CGreejp\u002BmBFUkPMZpFKnUBfHGSokfoBKN3BZ1h0LkYFVT0fmrtdj7qe72G6sai5\u002BGKDQr2o6EI3qlELKIMX0TQNxwFUKwKFAZy6GbKIRmclB37l4OuIXHz65\u002BBqQlc3hx49vPqnZd1v/jEg/s6Pr2Pp5iEEIeBIdWqEWTMiKr9FcoKkWolsjaGhhfKqZ22uezh8cGw2M1Ut9UeAEwyaPdOB63w721TqfWh/Yqv9ng4M5e36papTD089dlUx7GqVB0gfKIvhYp/jkgMDtsCpMFdJgz0en5g5Ltw9DmT/qJD96ltj3mVyG3NeFwOnX1h\u002BhEYN\u002BFk9hnev1fm/pGQq4/liBdx1RVHhx3fJwHiUkd9zznou8bA3wFPTs/h7wmcPIzMaNUl7\u002BT7kHDDhY7X/G0QqO\u002BXqC\u002BJJKkV4kZFZdfUAuq1FelyF98VLOuV/Vlyt5Ji0QZZxJRdA0QsEA1etipY70LkYqaDnlDQgrtEMydPo2rz4pSRun5WGBKlBgfRtnbBPM3WjhTr3zL1SUHZGNAc3GziqpNVh3UETkqT3pgI/swEQzYZeRUWCANh3DD8vP8CSGmbLwvja3WY0j/KF8CarEq1lJXaA6NXjKJQM\u002BsER9FLkZYurc\u002BAYRfAQKbVC/BCxy\u002BmRuhpaESGQ2KpU3dKlEpuvoZqbD669XO\u002BGYL8QoCyDSz7XgDpImlRaGqtFs2gdewcpo1p2FrxK1F0q06BycDiN0YKTzZJRZxdGMPTzd6l3aPW39vzCDSSCnKvtHbaj55pyx9Hlea1kyDxDP\u002BXHR2yjo2q6uok7u8ReETDmdElQkklagK/Hke9IQy7Ajt1Ou0VPOWpb\u002BT0RRxwdh2h8jlPi8p2cbMa87BF7cmdaeyz3H1X7pzru9KkcSUmTqhqGy8Ta3Zw/sl5\u002Bgl1Y4HbFxsvvJmgCcNcZA/30cCN9KTH25Kaij62Qt20HfRTthhQiVoJ9pIOihErtscmeOzIrAWkbUfvQEzcuXm8LCwPCO43pwimhD3SuVGBbtM3kAnwq3HurwjQoQjNLT1YUl4lHK4Y7tHkIifH0bQ2LhG55Skvy0C6YFmlZwY/2ZbAembznFJlHqF4DIlJ5t2U2nM3U0gUaIcdavxUs4eLpAhRB1dNApH/FIaH9773MHl70IySyIZO7BHf1jFWEGrZrGhA\u002BJ\u002BGB5eheD6BTHDIJjpC2KM6\u002BNuCAlsFrSygaQRbrktWdneZ9cj1MVCHzV/g16/3EzfH3rOM/vZEQJprAQ76JZ4lsa/C6SLaRcdLOnU7ZJW8qVXMU8=" + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-15649c23-ca2f-0b95-0943-840beb4b5574?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-167ce20b5abead4e8ca9268fc536d36a-607347a5311e664e-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "a38206cd-be2d-631b-55f9-64525ccb94aa", + "x-ms-date": "Tue, 18 Aug 2020 15:21:18 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:21:16 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "a38206cd-be2d-631b-55f9-64525ccb94aa", + "x-ms-request-id": "45f6b824-c01e-0034-4473-75a5a2000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "11217528", + "Storage_TestConfigDefault": "ProductionTenant\nseandevtest\nU2FuaXRpemVk\nhttps://seandevtest.blob.core.windows.net\nhttps://seandevtest.file.core.windows.net\nhttps://seandevtest.queue.core.windows.net\nhttps://seandevtest.table.core.windows.net\n\n\n\n\nhttps://seandevtest-secondary.blob.core.windows.net\nhttps://seandevtest-secondary.file.core.windows.net\nhttps://seandevtest-secondary.queue.core.windows.net\nhttps://seandevtest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seandevtest.blob.core.windows.net/;QueueEndpoint=https://seandevtest.queue.core.windows.net/;FileEndpoint=https://seandevtest.file.core.windows.net/;BlobSecondaryEndpoint=https://seandevtest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seandevtest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seandevtest-secondary.file.core.windows.net/;AccountName=seandevtest;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/UploadPagesAsync_InvalidStreamPosition.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/UploadPagesAsync_InvalidStreamPosition.json new file mode 100644 index 0000000000000..a66f79a1918af --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/UploadPagesAsync_InvalidStreamPosition.json @@ -0,0 +1,108 @@ +{ + "Entries": [ + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-f7cf1739-a2cc-e2f0-8207-49c1afd0e19b?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-896983b6b9d43c4289c7ee36221f297b-1209bcc1353a9a43-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "f26ef0d2-c326-d9d6-d7d3-5a95165a9472", + "x-ms-date": "Tue, 18 Aug 2020 15:20:51 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:20:50 GMT", + "ETag": "\u00220x8D8438A4AA49C99\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:20:50 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "f26ef0d2-c326-d9d6-d7d3-5a95165a9472", + "x-ms-request-id": "134c45f9-f01e-0073-5e73-757ac9000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-f7cf1739-a2cc-e2f0-8207-49c1afd0e19b/test-blob-1fa76a4f-1578-10b1-e507-86d64360b0c7", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "0", + "traceparent": "00-ae9d7abe6eeb204faa39a15be6085100-974f119393ffec4a-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-content-length": "4096", + "x-ms-blob-sequence-number": "0", + "x-ms-blob-type": "PageBlob", + "x-ms-client-request-id": "c840ec61-1513-bce4-3f5d-0c1f3d009676", + "x-ms-date": "Tue, 18 Aug 2020 15:20:51 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:20:50 GMT", + "ETag": "\u00220x8D8438A4ABCAB1B\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:20:51 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "c840ec61-1513-bce4-3f5d-0c1f3d009676", + "x-ms-request-id": "134c4680-f01e-0073-5773-757ac9000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-f7cf1739-a2cc-e2f0-8207-49c1afd0e19b?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-b16783af7c3707429723ad5af9f6ddd8-9b2801ace777124e-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "0b05d856-7390-7408-b46e-229e8db2d82f", + "x-ms-date": "Tue, 18 Aug 2020 15:20:51 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:20:50 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "0b05d856-7390-7408-b46e-229e8db2d82f", + "x-ms-request-id": "134c46af-f01e-0073-0173-757ac9000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "421259248", + "Storage_TestConfigDefault": "ProductionTenant\nseandevtest\nU2FuaXRpemVk\nhttps://seandevtest.blob.core.windows.net\nhttps://seandevtest.file.core.windows.net\nhttps://seandevtest.queue.core.windows.net\nhttps://seandevtest.table.core.windows.net\n\n\n\n\nhttps://seandevtest-secondary.blob.core.windows.net\nhttps://seandevtest-secondary.file.core.windows.net\nhttps://seandevtest-secondary.queue.core.windows.net\nhttps://seandevtest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seandevtest.blob.core.windows.net/;QueueEndpoint=https://seandevtest.queue.core.windows.net/;FileEndpoint=https://seandevtest.file.core.windows.net/;BlobSecondaryEndpoint=https://seandevtest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seandevtest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seandevtest-secondary.file.core.windows.net/;AccountName=seandevtest;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/UploadPagesAsync_InvalidStreamPositionAsync.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/UploadPagesAsync_InvalidStreamPositionAsync.json new file mode 100644 index 0000000000000..1e8897eb6c749 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/UploadPagesAsync_InvalidStreamPositionAsync.json @@ -0,0 +1,108 @@ +{ + "Entries": [ + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-46e8e910-28bb-047d-24ac-5f9fc9104f6a?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-efeea233ab8ff34ea3992c34080c1298-9cdf8d8efae41848-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "5280732c-3dd8-3c32-e43a-39080ba10ebd", + "x-ms-date": "Tue, 18 Aug 2020 15:20:52 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:20:51 GMT", + "ETag": "\u00220x8D8438A4B9DF126\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:20:52 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "5280732c-3dd8-3c32-e43a-39080ba10ebd", + "x-ms-request-id": "2c769acc-601e-0039-6f73-754aae000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-46e8e910-28bb-047d-24ac-5f9fc9104f6a/test-blob-7a8c0427-5928-16c7-6bc7-f20278583d06", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "0", + "traceparent": "00-27b41096e8d2f9489dcb5888b64910ee-0816a1c7114df941-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-content-length": "4096", + "x-ms-blob-sequence-number": "0", + "x-ms-blob-type": "PageBlob", + "x-ms-client-request-id": "c1fef3ab-cf91-d283-ac6a-e7114a30c48c", + "x-ms-date": "Tue, 18 Aug 2020 15:20:53 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:20:51 GMT", + "ETag": "\u00220x8D8438A4BA95861\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:20:52 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "c1fef3ab-cf91-d283-ac6a-e7114a30c48c", + "x-ms-request-id": "2c769b28-601e-0039-3b73-754aae000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-46e8e910-28bb-047d-24ac-5f9fc9104f6a?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-fb1b2bd7771c04429eab1c0fad0bb4a9-09ecde79b1a3de4e-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "4db51853-0aaf-0f05-ac2c-4998a3810c74", + "x-ms-date": "Tue, 18 Aug 2020 15:20:53 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:20:51 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "4db51853-0aaf-0f05-ac2c-4998a3810c74", + "x-ms-request-id": "2c769b83-601e-0039-0c73-754aae000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "1657941146", + "Storage_TestConfigDefault": "ProductionTenant\nseandevtest\nU2FuaXRpemVk\nhttps://seandevtest.blob.core.windows.net\nhttps://seandevtest.file.core.windows.net\nhttps://seandevtest.queue.core.windows.net\nhttps://seandevtest.table.core.windows.net\n\n\n\n\nhttps://seandevtest-secondary.blob.core.windows.net\nhttps://seandevtest-secondary.file.core.windows.net\nhttps://seandevtest-secondary.queue.core.windows.net\nhttps://seandevtest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seandevtest.blob.core.windows.net/;QueueEndpoint=https://seandevtest.queue.core.windows.net/;FileEndpoint=https://seandevtest.file.core.windows.net/;BlobSecondaryEndpoint=https://seandevtest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seandevtest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seandevtest-secondary.file.core.windows.net/;AccountName=seandevtest;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/UploadPagesAsync_NonZeroStreamPosition.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/UploadPagesAsync_NonZeroStreamPosition.json new file mode 100644 index 0000000000000..f43a8888a395f --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/UploadPagesAsync_NonZeroStreamPosition.json @@ -0,0 +1,186 @@ +{ + "Entries": [ + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-d6566354-c7ff-6a07-45ee-c272e9ca0197?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-dced9f5166033344aecc3bff25fae025-b607b06a54f99b4a-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "6a7548c5-0389-d7fe-9816-e2b6023d2eb8", + "x-ms-date": "Tue, 18 Aug 2020 15:20:51 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:20:50 GMT", + "ETag": "\u00220x8D8438A4B0C519B\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:20:51 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "6a7548c5-0389-d7fe-9816-e2b6023d2eb8", + "x-ms-request-id": "fa6198f7-e01e-000a-1a73-751383000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-d6566354-c7ff-6a07-45ee-c272e9ca0197/test-blob-5bc69431-547f-7f79-0f66-62f3a27f46aa", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "0", + "traceparent": "00-0d2ff904307f224baf7b61e7c81c07ba-8cdad9ab640a254e-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-content-length": "512", + "x-ms-blob-sequence-number": "0", + "x-ms-blob-type": "PageBlob", + "x-ms-client-request-id": "8f566cdd-f8d4-70bb-cef5-5a23a00a3518", + "x-ms-date": "Tue, 18 Aug 2020 15:20:52 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:20:50 GMT", + "ETag": "\u00220x8D8438A4B17ACA6\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:20:51 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "8f566cdd-f8d4-70bb-cef5-5a23a00a3518", + "x-ms-request-id": "fa619944-e01e-000a-5d73-751383000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-d6566354-c7ff-6a07-45ee-c272e9ca0197/test-blob-5bc69431-547f-7f79-0f66-62f3a27f46aa?comp=page", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-fa498eb367dde64a8ce2dd8cbaa22743-e8acac0af8d53749-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "fc8942a7-2d32-8449-888b-2b697ec3d177", + "x-ms-date": "Tue, 18 Aug 2020 15:20:52 GMT", + "x-ms-page-write": "update", + "x-ms-range": "bytes=0-511", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "bK\u002B6Hf/7JA7e3Wd3Y9o6owpj9Ip7cIH4U3Q1g/jovfhkOkyhwFB3DaJ/rTwL2sNKajSY9JFKXfwtwsmKxqAV9h9vEimNmeK66\u002Bbn\u002B8JF7Hmx6hnDUMlmGtxQc/6H7UcBarccnMeavdBS3giqYmI66NVP2dyHUaVWCPhMPSbjM/6f5pEKKE\u002BxFy1IcXLAvLd6FoopNxRqeRgRxpTPTX\u002BqbqoKC3zRL8CFnsGvP\u002BAzlUtA0iebuvvpNGx4\u002BGK74cmtnQPHtrE7qebKo5lSuzo43jBIj3tXD7OuINYPWDZdyrz4AaLcbN\u002BaBChA0RZil3gyQBoyc1JOVo5PGJXbLFCwbdndWrqYW3FQrYtSFz6dTIld3RgbKlZpqqsTjVRJv9fYj2Q9hT2\u002BmuSp4cXH\u002Bz5QsswMfU84lUKCc68PhM4dB\u002B6zeofZX8ZLn0IzcUmRoq5sw9qIPEGIoPoiuhKNrhUWi9rXFIG3dlIFwN4MBCP48dABosDzlcqsKtqNt6W0vvAtHeVvuY4ttU2Hgntje5vWKchBjAxVIvYPK\u002BmmKb6tUALu3\u002Bc9iTdC0\u002B1ybBJOSa8/to7cczLk1/vvX46lhouP2jJ5dJyzmaCQ/rke4rbjwOI6Z3Mw0d3PCgfsTSmpnUxh45Hg1dQSix3uS3R5xfREC5\u002Bsah8YXwlUqWqUx0t252E=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:20:50 GMT", + "ETag": "\u00220x8D8438A4B248036\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:20:51 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-blob-sequence-number": "0", + "x-ms-client-request-id": "fc8942a7-2d32-8449-888b-2b697ec3d177", + "x-ms-content-crc64": "KB8wktNHVO0=", + "x-ms-request-id": "fa61998d-e01e-000a-2073-751383000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-d6566354-c7ff-6a07-45ee-c272e9ca0197/test-blob-5bc69431-547f-7f79-0f66-62f3a27f46aa", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-66deb1170a8ef040a25f73795c7a730d-2b708a19fa79094d-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "091f8126-eaec-3f2e-747b-9c77bfa4a918", + "x-ms-date": "Tue, 18 Aug 2020 15:20:52 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "512", + "Content-Type": "application/octet-stream", + "Date": "Tue, 18 Aug 2020 15:20:50 GMT", + "ETag": "\u00220x8D8438A4B248036\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:20:51 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-blob-sequence-number": "0", + "x-ms-blob-type": "PageBlob", + "x-ms-client-request-id": "091f8126-eaec-3f2e-747b-9c77bfa4a918", + "x-ms-creation-time": "Tue, 18 Aug 2020 15:20:51 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "fa6199d9-e01e-000a-6873-751383000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": "bK\u002B6Hf/7JA7e3Wd3Y9o6owpj9Ip7cIH4U3Q1g/jovfhkOkyhwFB3DaJ/rTwL2sNKajSY9JFKXfwtwsmKxqAV9h9vEimNmeK66\u002Bbn\u002B8JF7Hmx6hnDUMlmGtxQc/6H7UcBarccnMeavdBS3giqYmI66NVP2dyHUaVWCPhMPSbjM/6f5pEKKE\u002BxFy1IcXLAvLd6FoopNxRqeRgRxpTPTX\u002BqbqoKC3zRL8CFnsGvP\u002BAzlUtA0iebuvvpNGx4\u002BGK74cmtnQPHtrE7qebKo5lSuzo43jBIj3tXD7OuINYPWDZdyrz4AaLcbN\u002BaBChA0RZil3gyQBoyc1JOVo5PGJXbLFCwbdndWrqYW3FQrYtSFz6dTIld3RgbKlZpqqsTjVRJv9fYj2Q9hT2\u002BmuSp4cXH\u002Bz5QsswMfU84lUKCc68PhM4dB\u002B6zeofZX8ZLn0IzcUmRoq5sw9qIPEGIoPoiuhKNrhUWi9rXFIG3dlIFwN4MBCP48dABosDzlcqsKtqNt6W0vvAtHeVvuY4ttU2Hgntje5vWKchBjAxVIvYPK\u002BmmKb6tUALu3\u002Bc9iTdC0\u002B1ybBJOSa8/to7cczLk1/vvX46lhouP2jJ5dJyzmaCQ/rke4rbjwOI6Z3Mw0d3PCgfsTSmpnUxh45Hg1dQSix3uS3R5xfREC5\u002Bsah8YXwlUqWqUx0t252E=" + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-d6566354-c7ff-6a07-45ee-c272e9ca0197?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-a10e10bb30b9a44fa2bfd6ba24b63fed-e95bc5fe352a704e-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "fc43d8a0-c8a3-798a-e3cc-94798490f4f9", + "x-ms-date": "Tue, 18 Aug 2020 15:20:52 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:20:51 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "fc43d8a0-c8a3-798a-e3cc-94798490f4f9", + "x-ms-request-id": "fa619a3d-e01e-000a-3e73-751383000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "1484142639", + "Storage_TestConfigDefault": "ProductionTenant\nseandevtest\nU2FuaXRpemVk\nhttps://seandevtest.blob.core.windows.net\nhttps://seandevtest.file.core.windows.net\nhttps://seandevtest.queue.core.windows.net\nhttps://seandevtest.table.core.windows.net\n\n\n\n\nhttps://seandevtest-secondary.blob.core.windows.net\nhttps://seandevtest-secondary.file.core.windows.net\nhttps://seandevtest-secondary.queue.core.windows.net\nhttps://seandevtest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seandevtest.blob.core.windows.net/;QueueEndpoint=https://seandevtest.queue.core.windows.net/;FileEndpoint=https://seandevtest.file.core.windows.net/;BlobSecondaryEndpoint=https://seandevtest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seandevtest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seandevtest-secondary.file.core.windows.net/;AccountName=seandevtest;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/UploadPagesAsync_NonZeroStreamPositionAsync.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/UploadPagesAsync_NonZeroStreamPositionAsync.json new file mode 100644 index 0000000000000..a4cfaa2ed7caa --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/UploadPagesAsync_NonZeroStreamPositionAsync.json @@ -0,0 +1,186 @@ +{ + "Entries": [ + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-5ab22afc-f4d2-bdb2-3bc6-7e394f01aafe?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-48cd59b6996eba469e0833bcc9f831da-4bbe59036c250741-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "09ba5471-d13e-947f-b0a0-9d481a94c41d", + "x-ms-date": "Tue, 18 Aug 2020 15:20:53 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:20:53 GMT", + "ETag": "\u00220x8D8438A4BE81B8B\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:20:53 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "09ba5471-d13e-947f-b0a0-9d481a94c41d", + "x-ms-request-id": "0d29bdd3-301e-0047-3473-75d561000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-5ab22afc-f4d2-bdb2-3bc6-7e394f01aafe/test-blob-a9ed3641-9b5c-06b3-a2c5-f014decacdd7", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "0", + "traceparent": "00-2a853613130cce4f92dd93c83c759e2c-a8d5a93b90071b45-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-content-length": "512", + "x-ms-blob-sequence-number": "0", + "x-ms-blob-type": "PageBlob", + "x-ms-client-request-id": "baa6f8f9-a276-d508-a0b4-6678e16bb6e5", + "x-ms-date": "Tue, 18 Aug 2020 15:20:53 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:20:53 GMT", + "ETag": "\u00220x8D8438A4BF33FF6\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:20:53 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "baa6f8f9-a276-d508-a0b4-6678e16bb6e5", + "x-ms-request-id": "0d29be29-301e-0047-7f73-75d561000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-5ab22afc-f4d2-bdb2-3bc6-7e394f01aafe/test-blob-a9ed3641-9b5c-06b3-a2c5-f014decacdd7?comp=page", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-af1817cce8b8d44392fc0ed515cfbabe-2f3e861356ce2e40-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "f94562ac-1b8c-b962-3a6d-9a1e26e547f2", + "x-ms-date": "Tue, 18 Aug 2020 15:20:53 GMT", + "x-ms-page-write": "update", + "x-ms-range": "bytes=0-511", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "H1QAeGBJhr8N\u002B1NGcGLD\u002BJTQPHTur9WB4cOcA4lzaBPHTp5DeDg3qiAF\u002BuP4cbCi9p/a2HRhbHB\u002BfpedrIM1mZI/fiLDf4BcmJJT6bXxiXAT\u002BgzqmJCeZeEuxfqgmv2d0GBRuPKO3nYffj/iDoO6jfQnibF2SgACoRhAlbqFu/2UthlUoNF9hByWyxpQu1deczcGeBBLJoVgTxfaTUm8mcJBTlhpZu0jqgWV4H/mseXB4iGCf0LtSI\u002BT81G5ozfS2TFXDm3\u002B9A1K4s4LtkUGep0xGGonOhp/VAbJ1XKcaQbNwwdNjqJ4wu4UN5x04ZJJjXmziIrMqp4X17pnNR6arnnIPfI\u002Buev7uVV8EwN\u002BC3Nzf0j46OF7ARhpNbboEI3QeYkiq6OfC9SOuM41T5ebmMxG87XVocWYTDza1YM0EqnIrJl5XF/P1HR0ajASRrGBzZ3qoR3X\u002BtjDil9nxTVQWaUlbKP9ITxsdx9BYTaVhQWKWAfmSnGM8bHBttEAZw8\u002BIxGL7doOhKxgfin\u002BlZmhLQVZ3WwuaQ4zmXvxPGprbA8PAj0lCZcre9RbhsxHjlsYH4nMpoqiELoCWFRfHEdB9RIZ7pNbfCNtLmGX0uNC6wsf2B3hnsWFbPGDIrFCzF\u002BMGZC5Lp/IvaJlXngoCj3Wv2xJP0MqYFZMlIGh2FpyK2I=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:20:53 GMT", + "ETag": "\u00220x8D8438A4BFE175D\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:20:53 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-blob-sequence-number": "0", + "x-ms-client-request-id": "f94562ac-1b8c-b962-3a6d-9a1e26e547f2", + "x-ms-content-crc64": "7eOcWfwQ\u002BYU=", + "x-ms-request-id": "0d29be63-301e-0047-3773-75d561000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-5ab22afc-f4d2-bdb2-3bc6-7e394f01aafe/test-blob-a9ed3641-9b5c-06b3-a2c5-f014decacdd7", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-c88c33f30fc52c4fb31f7d8684fecf0a-e15f3d321072004f-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "f82bed1f-312c-e7d5-a800-181b234d3036", + "x-ms-date": "Tue, 18 Aug 2020 15:20:53 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "512", + "Content-Type": "application/octet-stream", + "Date": "Tue, 18 Aug 2020 15:20:53 GMT", + "ETag": "\u00220x8D8438A4BFE175D\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:20:53 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-blob-sequence-number": "0", + "x-ms-blob-type": "PageBlob", + "x-ms-client-request-id": "f82bed1f-312c-e7d5-a800-181b234d3036", + "x-ms-creation-time": "Tue, 18 Aug 2020 15:20:53 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "0d29bea9-301e-0047-7b73-75d561000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": "H1QAeGBJhr8N\u002B1NGcGLD\u002BJTQPHTur9WB4cOcA4lzaBPHTp5DeDg3qiAF\u002BuP4cbCi9p/a2HRhbHB\u002BfpedrIM1mZI/fiLDf4BcmJJT6bXxiXAT\u002BgzqmJCeZeEuxfqgmv2d0GBRuPKO3nYffj/iDoO6jfQnibF2SgACoRhAlbqFu/2UthlUoNF9hByWyxpQu1deczcGeBBLJoVgTxfaTUm8mcJBTlhpZu0jqgWV4H/mseXB4iGCf0LtSI\u002BT81G5ozfS2TFXDm3\u002B9A1K4s4LtkUGep0xGGonOhp/VAbJ1XKcaQbNwwdNjqJ4wu4UN5x04ZJJjXmziIrMqp4X17pnNR6arnnIPfI\u002Buev7uVV8EwN\u002BC3Nzf0j46OF7ARhpNbboEI3QeYkiq6OfC9SOuM41T5ebmMxG87XVocWYTDza1YM0EqnIrJl5XF/P1HR0ajASRrGBzZ3qoR3X\u002BtjDil9nxTVQWaUlbKP9ITxsdx9BYTaVhQWKWAfmSnGM8bHBttEAZw8\u002BIxGL7doOhKxgfin\u002BlZmhLQVZ3WwuaQ4zmXvxPGprbA8PAj0lCZcre9RbhsxHjlsYH4nMpoqiELoCWFRfHEdB9RIZ7pNbfCNtLmGX0uNC6wsf2B3hnsWFbPGDIrFCzF\u002BMGZC5Lp/IvaJlXngoCj3Wv2xJP0MqYFZMlIGh2FpyK2I=" + }, + { + "RequestUri": "https://seandevtest.blob.core.windows.net/test-container-5ab22afc-f4d2-bdb2-3bc6-7e394f01aafe?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-654b8b04c5873f469940cfd2e02a09e7-913f34d80a561044-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "39ff636e-4fb9-01c5-403e-57836b1b8b90", + "x-ms-date": "Tue, 18 Aug 2020 15:20:53 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:20:53 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "39ff636e-4fb9-01c5-403e-57836b1b8b90", + "x-ms-request-id": "0d29bee0-301e-0047-2e73-75d561000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "757172356", + "Storage_TestConfigDefault": "ProductionTenant\nseandevtest\nU2FuaXRpemVk\nhttps://seandevtest.blob.core.windows.net\nhttps://seandevtest.file.core.windows.net\nhttps://seandevtest.queue.core.windows.net\nhttps://seandevtest.table.core.windows.net\n\n\n\n\nhttps://seandevtest-secondary.blob.core.windows.net\nhttps://seandevtest-secondary.file.core.windows.net\nhttps://seandevtest-secondary.queue.core.windows.net\nhttps://seandevtest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seandevtest.blob.core.windows.net/;QueueEndpoint=https://seandevtest.queue.core.windows.net/;FileEndpoint=https://seandevtest.file.core.windows.net/;BlobSecondaryEndpoint=https://seandevtest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seandevtest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seandevtest-secondary.file.core.windows.net/;AccountName=seandevtest;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Common/src/Shared/Errors.cs b/sdk/storage/Azure.Storage.Common/src/Shared/Errors.cs index c7432decc05c8..7c4347eb580fd 100644 --- a/sdk/storage/Azure.Storage.Common/src/Shared/Errors.cs +++ b/sdk/storage/Azure.Storage.Common/src/Shared/Errors.cs @@ -49,7 +49,7 @@ public static ArgumentException InsufficientStorageTransferOptions(long streamLe internal static void VerifyStreamPosition(Stream stream) { - if (stream != null && stream.CanSeek && stream.Position >= stream.Length) + if (stream != null && stream.CanSeek && stream.Length > 0 && stream.Position >= stream.Length) { throw new ArgumentException($"{nameof(stream)}.{nameof(stream.Position)} must be less than {nameof(stream)}.{nameof(stream.Length)}"); } diff --git a/sdk/storage/Azure.Storage.Common/src/Shared/PartitionedUploader.cs b/sdk/storage/Azure.Storage.Common/src/Shared/PartitionedUploader.cs index 5ec4297627b30..968c20fab0d21 100644 --- a/sdk/storage/Azure.Storage.Common/src/Shared/PartitionedUploader.cs +++ b/sdk/storage/Azure.Storage.Common/src/Shared/PartitionedUploader.cs @@ -43,6 +43,7 @@ public delegate Task UploadPartitionInternal(Stream contentStream, CancellationToken cancellationToken); public delegate Task> CommitPartitionedUploadInternal( List<(long Offset, long Size)> partitions, + long initialPosition, TServiceSpecificArgs args, bool async, CancellationToken cancellationToken); @@ -250,13 +251,15 @@ private async Task> UploadInSequenceInternal( // The list tracking blocks IDs we're going to commit List<(long Offset, long Size)> partitions = new List<(long, long)>(); - /* Streamed partitions only work if we can seek the stream; we need retries on - * individual uploads. - */ + // Streamed partitions only work if we can seek the stream; we need retries on individual uploads. GetNextStreamPartition partitionGetter = content.CanSeek ? (GetNextStreamPartition)GetStreamedPartitionInternal : /* redundant cast */GetBufferedPartitionInternal; + // If the stream is not starting from position 0, we want to shift the offsets we are sending + // to the backend back by the inital position. + long initialPosition = content.CanSeek ? content.Position : 0; + // Partition the stream into individual blocks and stage them if (async) { @@ -270,7 +273,7 @@ private async Task> UploadInSequenceInternal( { await StagePartitionAndDisposeInternal( block, - block.AbsolutePosition, + block.AbsolutePosition - initialPosition, args, progressHandler, async: true, @@ -291,7 +294,7 @@ await StagePartitionAndDisposeInternal( { StagePartitionAndDisposeInternal( block, - block.AbsolutePosition, + block.AbsolutePosition - initialPosition, args, progressHandler, async: false, @@ -305,6 +308,7 @@ await StagePartitionAndDisposeInternal( // complete the upload return await _commitPartitionedUploadInternal( partitions, + initialPosition, args, async, cancellationToken).ConfigureAwait(false); @@ -345,6 +349,10 @@ private async Task> UploadInParallelAsync( // The list tracking blocks IDs we're going to commit List<(long Offset, long Size)> partitions = new List<(long, long)>(); + // If the stream's initial position is not 0, we want to shift the offsets we are + // reporting to the service back by the inital offset. + long initialPosition = content.CanSeek ? content.Position : 0; + // A list of tasks that are currently executing which will // always be smaller than _maxWorkerCount List runningTasks = new List(); @@ -404,6 +412,8 @@ private async Task> UploadInParallelAsync( // Calling internal method for easier mocking in PartitionedUploaderTests return await _commitPartitionedUploadInternal( partitions, + // For some reason, Upload in parallel handles offsets differently. + initialPosition: 0, args, async: true, cancellationToken) diff --git a/sdk/storage/Azure.Storage.Common/tests/PartitionedUploaderTests.cs b/sdk/storage/Azure.Storage.Common/tests/PartitionedUploaderTests.cs index bee6a221908af..a2d7ff1c0860b 100644 --- a/sdk/storage/Azure.Storage.Common/tests/PartitionedUploaderTests.cs +++ b/sdk/storage/Azure.Storage.Common/tests/PartitionedUploaderTests.cs @@ -84,7 +84,7 @@ public PartitionedUploaderTests(bool async) private Mock.CommitPartitionedUploadInternal> GetMockCommitPartitionedUploadInternal() { var mock = new Mock.CommitPartitionedUploadInternal>(MockBehavior.Strict); - mock.Setup(del => del(It.IsNotNull>(), s_objectArgs, IsAsync, s_cancellation)) + mock.Setup(del => del(It.IsNotNull>(),It.IsAny(), s_objectArgs, IsAsync, s_cancellation)) .Returns(Task.FromResult(new Mock>(MockBehavior.Loose).Object)); return mock; diff --git a/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeFileClient.cs b/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeFileClient.cs index 4b2f81b01cc7c..567e99e5cf89f 100644 --- a/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeFileClient.cs +++ b/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeFileClient.cs @@ -4129,7 +4129,7 @@ await client.AppendInternal( progressHandler, async, cancellationToken).ConfigureAwait(false), - CommitPartitionedUpload = async (partitions, args, async, cancellationToken) => + CommitPartitionedUpload = async (partitions, initialPosition, args, async, cancellationToken) => { (var offset, var size) = partitions.LastOrDefault(); @@ -4138,7 +4138,7 @@ await client.AppendInternal( args.Conditions = new DataLakeRequestConditions { LeaseId = args.Conditions.LeaseId }; return await client.FlushInternal( - offset + size, + offset + size - initialPosition, retainUncommittedData: default, close: default, httpHeaders: args.HttpHeaders, diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/DataLakeTestBase.cs b/sdk/storage/Azure.Storage.Files.DataLake/tests/DataLakeTestBase.cs index 0e961960f165a..c31a7f51f05b0 100644 --- a/sdk/storage/Azure.Storage.Files.DataLake/tests/DataLakeTestBase.cs +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/DataLakeTestBase.cs @@ -36,7 +36,7 @@ public readonly IList AccessControlList public readonly PathPermissions PathPermissions = PathPermissions.ParseSymbolicPermissions("rwxrwxrwx"); public DataLakeTestBase(bool async, DataLakeClientOptions.ServiceVersion serviceVersion, RecordedTestMode? mode = null) - : base(async, RecordedTestMode.Live) + : base(async, mode) { _serviceVersion = serviceVersion; } diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPosition.json b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPosition.json new file mode 100644 index 0000000000000..48dfa2283e718 --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPosition.json @@ -0,0 +1,209 @@ +{ + "Entries": [ + { + "RequestUri": "https://seannse.blob.core.windows.net/test-filesystem-c64a8982-32ad-59cf-c809-f6083c43f087?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-84211128b274774aa025c1ad2acd63e5-b7b7a68ae3089e48-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "ed08fa8e-3778-1aa2-1151-ce469564f366", + "x-ms-date": "Tue, 18 Aug 2020 15:08:42 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:42 GMT", + "ETag": "\u00220x8D8438898CAF86A\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:08:43 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "ed08fa8e-3778-1aa2-1151-ce469564f366", + "x-ms-request-id": "135f13c8-901e-0037-3371-75adf3000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seannse.dfs.core.windows.net/test-filesystem-c64a8982-32ad-59cf-c809-f6083c43f087/test-file-ea7bca3e-7cab-0e9c-335f-fc15a6685215?resource=file", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-None-Match": "*", + "traceparent": "00-87f5e5df66bff74b8eeb6aa0795cb9a4-bff9801a4cae0945-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "44d2dc68-32a3-072a-625c-49a1b6af0fc1", + "x-ms-date": "Tue, 18 Aug 2020 15:08:43 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:43 GMT", + "ETag": "\u00220x8D8438899323661\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:08:43 GMT", + "Server": [ + "Windows-Azure-HDFS/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "44d2dc68-32a3-072a-625c-49a1b6af0fc1", + "x-ms-request-id": "c1868154-c01f-0015-4671-7568ec000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seannse.dfs.core.windows.net/test-filesystem-c64a8982-32ad-59cf-c809-f6083c43f087/test-file-ea7bca3e-7cab-0e9c-335f-fc15a6685215?action=append\u0026position=0", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-fdf793f2912c6b49a5e32784a8414463-f037f1cb86cf1141-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "f5b24e30-afc8-273d-a7bd-370d827604f1", + "x-ms-date": "Tue, 18 Aug 2020 15:08:44 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "ynEC1wMx1l3yZmVxxasWZo9uOX\u002Bd1QpjzpVoIySw0CQ/40GdsjH/gVVx4lGvR5T/hsXE4I\u002Bt6vRmnghtybM4QZZBMeFqeLNdb7cqK/O5s4cBaJxe7O\u002BUkfhNNxQpkriiOaC6bhWylQ0SZ3HYg78AreqBbGAW2VWnrZ/oHUGeNNz/iPJS/kVxTtOPTIV\u002BvA45TIoppyZYi2BLE8F1ynfLczKU2PrNrq6lDx2Mho3QKfCRrtG3dYy2p/yRB\u002BuE/IRbw9hS6eMTbJ3bhJcIywXSeurQ5BumFP6m3TH\u002BO6fDIROZMcO0fj8NfUIz2/H0rtz2v4wAsxdpta7ZqwuxFTH2GGKEbppCHvyqw2bYczkNsS9VB3wawm37MHsU2tI0W2gQPMKOcD9CtKCPVfCxkEF1zPrbXA2121X1iT4eLkMqdmf\u002ByDd2f0HvE1Pbi219SqA6ng7XWP9aWmBtmeYBI4ZdZN\u002BIsscK/k247Ei62lDodz6d5I80Ux1oo23WCeZa7u/MfSaN9ZfYL6DAH2y2oIAPhCGnZD/3KBHBHw9ZM/RnXf5Z7V0pW4GnxLTudDSxsgPtxoXEsoqw1VQVzNWIf/urWcFuXLIj5SmfAJ\u002BKCLTdD20MbGxvoqp0qBgIFI6sH0W5QxpyQ1VQyuBbJLLqJcygOLxoexOOO7cW\u002BbOZGtGa8\u002BA=", + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:43 GMT", + "Server": [ + "Windows-Azure-HDFS/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "f5b24e30-afc8-273d-a7bd-370d827604f1", + "x-ms-request-id": "c186815c-c01f-0015-4e71-7568ec000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seannse.dfs.core.windows.net/test-filesystem-c64a8982-32ad-59cf-c809-f6083c43f087/test-file-ea7bca3e-7cab-0e9c-335f-fc15a6685215?action=flush\u0026position=512", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "0", + "traceparent": "00-c6714f38be73314e9cded0719da6e218-74c162660f7e0541-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "6871d93e-1afd-82f8-9468-ac4acebf6eda", + "x-ms-date": "Tue, 18 Aug 2020 15:08:44 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:43 GMT", + "ETag": "\u00220x8D84388994DC20B\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:08:43 GMT", + "Server": [ + "Windows-Azure-HDFS/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "6871d93e-1afd-82f8-9468-ac4acebf6eda", + "x-ms-request-id": "c1868169-c01f-0015-5b71-7568ec000000", + "x-ms-request-server-encrypted": "false", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seannse.blob.core.windows.net/test-filesystem-c64a8982-32ad-59cf-c809-f6083c43f087/test-file-ea7bca3e-7cab-0e9c-335f-fc15a6685215", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-ffaf7a9982646d46826707b806066bf9-a1627af7a28e7844-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "a9ce0ddd-9c05-62f3-59ca-928f83f9944e", + "x-ms-date": "Tue, 18 Aug 2020 15:08:44 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "512", + "Content-Type": "application/octet-stream", + "Date": "Tue, 18 Aug 2020 15:08:43 GMT", + "ETag": "\u00220x8D84388994DC20B\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:08:43 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "a9ce0ddd-9c05-62f3-59ca-928f83f9944e", + "x-ms-creation-time": "Tue, 18 Aug 2020 15:08:43 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "135f1597-901e-0037-6671-75adf3000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": "ynEC1wMx1l3yZmVxxasWZo9uOX\u002Bd1QpjzpVoIySw0CQ/40GdsjH/gVVx4lGvR5T/hsXE4I\u002Bt6vRmnghtybM4QZZBMeFqeLNdb7cqK/O5s4cBaJxe7O\u002BUkfhNNxQpkriiOaC6bhWylQ0SZ3HYg78AreqBbGAW2VWnrZ/oHUGeNNz/iPJS/kVxTtOPTIV\u002BvA45TIoppyZYi2BLE8F1ynfLczKU2PrNrq6lDx2Mho3QKfCRrtG3dYy2p/yRB\u002BuE/IRbw9hS6eMTbJ3bhJcIywXSeurQ5BumFP6m3TH\u002BO6fDIROZMcO0fj8NfUIz2/H0rtz2v4wAsxdpta7ZqwuxFTH2GGKEbppCHvyqw2bYczkNsS9VB3wawm37MHsU2tI0W2gQPMKOcD9CtKCPVfCxkEF1zPrbXA2121X1iT4eLkMqdmf\u002ByDd2f0HvE1Pbi219SqA6ng7XWP9aWmBtmeYBI4ZdZN\u002BIsscK/k247Ei62lDodz6d5I80Ux1oo23WCeZa7u/MfSaN9ZfYL6DAH2y2oIAPhCGnZD/3KBHBHw9ZM/RnXf5Z7V0pW4GnxLTudDSxsgPtxoXEsoqw1VQVzNWIf/urWcFuXLIj5SmfAJ\u002BKCLTdD20MbGxvoqp0qBgIFI6sH0W5QxpyQ1VQyuBbJLLqJcygOLxoexOOO7cW\u002BbOZGtGa8\u002BA=" + }, + { + "RequestUri": "https://seannse.blob.core.windows.net/test-filesystem-c64a8982-32ad-59cf-c809-f6083c43f087?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-4f1034db64972f45af7771806d5c6f6e-183147d423bde649-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "c06c2b01-c4f0-1fd5-8c24-7a2265e77e10", + "x-ms-date": "Tue, 18 Aug 2020 15:08:44 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:43 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "c06c2b01-c4f0-1fd5-8c24-7a2265e77e10", + "x-ms-request-id": "135f15da-901e-0037-1e71-75adf3000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "1321534502", + "Storage_TestConfigHierarchicalNamespace": "NamespaceTenant\nseannse\nU2FuaXRpemVk\nhttps://seannse.blob.core.windows.net\nhttps://seannse.file.core.windows.net\nhttps://seannse.queue.core.windows.net\nhttps://seannse.table.core.windows.net\n\n\n\n\nhttps://seannse-secondary.blob.core.windows.net\nhttps://seannse-secondary.file.core.windows.net\nhttps://seannse-secondary.queue.core.windows.net\nhttps://seannse-secondary.table.core.windows.net\n68390a19-a643-458b-b726-408abf67b4fc\nSanitized\n72f988bf-86f1-41af-91ab-2d7cd011db47\nhttps://login.microsoftonline.com/\nCloud\nBlobEndpoint=https://seannse.blob.core.windows.net/;QueueEndpoint=https://seannse.queue.core.windows.net/;FileEndpoint=https://seannse.file.core.windows.net/;BlobSecondaryEndpoint=https://seannse-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seannse-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seannse-secondary.file.core.windows.net/;AccountName=seannse;AccountKey=Sanitized\n" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPositionAsync.json b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPositionAsync.json new file mode 100644 index 0000000000000..103a239aeb1cd --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPositionAsync.json @@ -0,0 +1,209 @@ +{ + "Entries": [ + { + "RequestUri": "https://seannse.blob.core.windows.net/test-filesystem-16cd11b9-337d-d534-6da2-ab526363fc4e?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-fed0fed4c4b11f46a0e632d52dd3a5e3-492cd5a634a44d4c-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "c0dcfbb1-6622-3bf6-33a4-e4e62fd44c2c", + "x-ms-date": "Tue, 18 Aug 2020 15:08:47 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:46 GMT", + "ETag": "\u00220x8D843889B09551A\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:08:46 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "c0dcfbb1-6622-3bf6-33a4-e4e62fd44c2c", + "x-ms-request-id": "eb880eac-b01e-0089-5871-75c58a000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seannse.dfs.core.windows.net/test-filesystem-16cd11b9-337d-d534-6da2-ab526363fc4e/test-file-2aa07319-f1d5-78fc-b675-4de8002924bf?resource=file", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-None-Match": "*", + "traceparent": "00-db73bb30a6ceb44a9ee7c931f982dbc2-44c092254cd0ea43-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "1cd55e4c-5c5a-6e87-c7bb-afeff095220c", + "x-ms-date": "Tue, 18 Aug 2020 15:08:47 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:46 GMT", + "ETag": "\u00220x8D843889B3D98DE\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:08:47 GMT", + "Server": [ + "Windows-Azure-HDFS/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "1cd55e4c-5c5a-6e87-c7bb-afeff095220c", + "x-ms-request-id": "1a5abc3a-d01f-0026-2971-753747000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seannse.dfs.core.windows.net/test-filesystem-16cd11b9-337d-d534-6da2-ab526363fc4e/test-file-2aa07319-f1d5-78fc-b675-4de8002924bf?action=append\u0026position=0", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-c319c1285dee2346915655086577a1db-e4b119bfbf9a484b-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "9c2bb8e2-5da1-e7cd-6c45-b89ec614cf8f", + "x-ms-date": "Tue, 18 Aug 2020 15:08:47 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "S0Y2BkuvaQUcddbRhAtAyVAvTl0WNuOkgZJ5XCuArp4S\u002BdMShPLcapUWudY475gXx1dhGt2lfxRjkYW4NgzZnMc4vos4LkVdU\u002BTIAH0Ma5H5YZXTHpPBbXm\u002BrvJsIzSIPBwOADAN3pkSA8f53H\u002BWVibzvtR3Bn0zdlEReX9S8DCwP8Ng/mpg7IP7wRrMyJD6KFfMeGRfETaf2onf\u002B2UZvxKXSZ27NVi7k9JRe0RiZ67AF1EnhnfLUC6NwSPhgfAe4QEHNX/zPvL/EOWSDpbxPHPbHuQT8TiazPhuLnM12hLiM5lDWzIvzdhfKHWSOEGYnIWvBWILCvDIbWmGhBB\u002ByTbTsNv8reFArFEMs8jDCJO31pLuhdSv1iipeu7JqEjH4V8/vohmm\u002B6kb1gR/1YnBWTVz61\u002BkERhJNmzUzPzdwQIRNJpg0oKUDujSRZ8ndfRgnWJ89mbSVAb3Zqvs0i6sfhUCbqEvYEay35y2kYt5YYB4dG9aYMqbPqCTqawWp3z6JceJ5QdTcTzbyhaKW8J7fgTrtF2/Uh0KZy/AW7baXDgfvGvD73x5JQMyvlbz0OLeGGtnKzMfOtPqf34XUtVGAW3eqp9Wt06Ico8ajJOGVlZM4kNLc3DEwIFX2XA\u002BYZJtrL0o1WZDh2Ec3rikBK5AZCjnyrBSOo482aoePt3eSg=", + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:46 GMT", + "Server": [ + "Windows-Azure-HDFS/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "9c2bb8e2-5da1-e7cd-6c45-b89ec614cf8f", + "x-ms-request-id": "1a5abc3f-d01f-0026-2e71-753747000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seannse.dfs.core.windows.net/test-filesystem-16cd11b9-337d-d534-6da2-ab526363fc4e/test-file-2aa07319-f1d5-78fc-b675-4de8002924bf?action=flush\u0026position=512", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "0", + "traceparent": "00-67e1d61eed695d4c869eb5007c268ba3-334ddd1dadd41947-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "380d9cd6-856a-9c6a-85b7-301a8007548a", + "x-ms-date": "Tue, 18 Aug 2020 15:08:47 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:46 GMT", + "ETag": "\u00220x8D843889B57E300\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:08:47 GMT", + "Server": [ + "Windows-Azure-HDFS/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "380d9cd6-856a-9c6a-85b7-301a8007548a", + "x-ms-request-id": "1a5abc42-d01f-0026-3171-753747000000", + "x-ms-request-server-encrypted": "false", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seannse.blob.core.windows.net/test-filesystem-16cd11b9-337d-d534-6da2-ab526363fc4e/test-file-2aa07319-f1d5-78fc-b675-4de8002924bf", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-777f2015abba1747b5185b6aff029715-516907c553ee274a-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "29c82196-9607-c325-1123-7b8bb77693af", + "x-ms-date": "Tue, 18 Aug 2020 15:08:47 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "512", + "Content-Type": "application/octet-stream", + "Date": "Tue, 18 Aug 2020 15:08:47 GMT", + "ETag": "\u00220x8D843889B57E300\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:08:47 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "29c82196-9607-c325-1123-7b8bb77693af", + "x-ms-creation-time": "Tue, 18 Aug 2020 15:08:47 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "eb880f99-b01e-0089-2771-75c58a000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": "S0Y2BkuvaQUcddbRhAtAyVAvTl0WNuOkgZJ5XCuArp4S\u002BdMShPLcapUWudY475gXx1dhGt2lfxRjkYW4NgzZnMc4vos4LkVdU\u002BTIAH0Ma5H5YZXTHpPBbXm\u002BrvJsIzSIPBwOADAN3pkSA8f53H\u002BWVibzvtR3Bn0zdlEReX9S8DCwP8Ng/mpg7IP7wRrMyJD6KFfMeGRfETaf2onf\u002B2UZvxKXSZ27NVi7k9JRe0RiZ67AF1EnhnfLUC6NwSPhgfAe4QEHNX/zPvL/EOWSDpbxPHPbHuQT8TiazPhuLnM12hLiM5lDWzIvzdhfKHWSOEGYnIWvBWILCvDIbWmGhBB\u002ByTbTsNv8reFArFEMs8jDCJO31pLuhdSv1iipeu7JqEjH4V8/vohmm\u002B6kb1gR/1YnBWTVz61\u002BkERhJNmzUzPzdwQIRNJpg0oKUDujSRZ8ndfRgnWJ89mbSVAb3Zqvs0i6sfhUCbqEvYEay35y2kYt5YYB4dG9aYMqbPqCTqawWp3z6JceJ5QdTcTzbyhaKW8J7fgTrtF2/Uh0KZy/AW7baXDgfvGvD73x5JQMyvlbz0OLeGGtnKzMfOtPqf34XUtVGAW3eqp9Wt06Ico8ajJOGVlZM4kNLc3DEwIFX2XA\u002BYZJtrL0o1WZDh2Ec3rikBK5AZCjnyrBSOo482aoePt3eSg=" + }, + { + "RequestUri": "https://seannse.blob.core.windows.net/test-filesystem-16cd11b9-337d-d534-6da2-ab526363fc4e?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-e83c819f7dfd384ba46602ad1a4aec31-33d65f0a5c356742-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "5f83f427-2b3f-7883-4e49-314c694443b2", + "x-ms-date": "Tue, 18 Aug 2020 15:08:48 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:47 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "5f83f427-2b3f-7883-4e49-314c694443b2", + "x-ms-request-id": "eb880fba-b01e-0089-4871-75c58a000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "1113549594", + "Storage_TestConfigHierarchicalNamespace": "NamespaceTenant\nseannse\nU2FuaXRpemVk\nhttps://seannse.blob.core.windows.net\nhttps://seannse.file.core.windows.net\nhttps://seannse.queue.core.windows.net\nhttps://seannse.table.core.windows.net\n\n\n\n\nhttps://seannse-secondary.blob.core.windows.net\nhttps://seannse-secondary.file.core.windows.net\nhttps://seannse-secondary.queue.core.windows.net\nhttps://seannse-secondary.table.core.windows.net\n68390a19-a643-458b-b726-408abf67b4fc\nSanitized\n72f988bf-86f1-41af-91ab-2d7cd011db47\nhttps://login.microsoftonline.com/\nCloud\nBlobEndpoint=https://seannse.blob.core.windows.net/;QueueEndpoint=https://seannse.queue.core.windows.net/;FileEndpoint=https://seannse.file.core.windows.net/;BlobSecondaryEndpoint=https://seannse-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seannse-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seannse-secondary.file.core.windows.net/;AccountName=seannse;AccountKey=Sanitized\n" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocks.json b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocks.json new file mode 100644 index 0000000000000..bf08f95362a5d --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocks.json @@ -0,0 +1,304 @@ +{ + "Entries": [ + { + "RequestUri": "https://seannse.blob.core.windows.net/test-filesystem-1f947d69-5f3d-4972-3d3f-9c98cdc1cd8d?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-204d7efb613b6b469bdeaaf223d34f2c-1b04d5976d47c247-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "caa024b8-e69d-6050-76ef-59eac13da238", + "x-ms-date": "Tue, 18 Aug 2020 15:08:44 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:44 GMT", + "ETag": "\u00220x8D8438899B73313\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:08:44 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "caa024b8-e69d-6050-76ef-59eac13da238", + "x-ms-request-id": "4217941e-401e-000b-7a71-758434000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seannse.dfs.core.windows.net/test-filesystem-1f947d69-5f3d-4972-3d3f-9c98cdc1cd8d/test-file-dfd9b19b-0baf-59f2-2fa8-5d6472c4ea60?resource=file", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-31fe2f4f68daff469cd0a385e03dbdb3-e229ffda6c8fcf4f-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "7c9b4f33-0c33-7b8b-5111-19d66cf87b6a", + "x-ms-date": "Tue, 18 Aug 2020 15:08:45 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:44 GMT", + "ETag": "\u00220x8D8438899F6DB4E\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:08:45 GMT", + "Server": [ + "Windows-Azure-HDFS/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "7c9b4f33-0c33-7b8b-5111-19d66cf87b6a", + "x-ms-request-id": "afa04699-e01f-002d-1771-75cc2c000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seannse.dfs.core.windows.net/test-filesystem-1f947d69-5f3d-4972-3d3f-9c98cdc1cd8d/test-file-dfd9b19b-0baf-59f2-2fa8-5d6472c4ea60?action=append\u0026position=0", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-57f58f7aa740004eaf99f8e26bcbc96d-4d6e3496afb1d549-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "4a4cd7f5-44be-240a-5faf-9d528a724c9b", + "x-ms-date": "Tue, 18 Aug 2020 15:08:45 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "CqNJxb9mPpNR0cfWpvvPtkAfs3Xa33HyV9CvkrV3YaSWWfWRJNTp2ZToUMBwPInfAQE2TGS9xSoyV27vtqve2m8iP0wFPpJsNtnh8Y\u002BwgRpGz5GzQBRA2ZPKXsxl\u002BiPoCnZRTf082cJvyRaK3NObgtVTqOYaKpla4mW5O9/FBjy2\u002BOcYXzMdCvXORHb\u002Btfy/Ltz3ElE8zuDc9muXg57jqsPa1OTsgyKhNp7wTOYiXCxp\u002BQwCzvTqeioHO2jHhoZX65mzI\u002BEY06u5VduzS4L6upo/LoqS4NzO8Fq55Ue62bAXmWBMbjlLUCVgSXgYNi6oDIHOiFf8xAq95DKGXu1k/3srnLEhrkth9N1kMZdjtrorEdjF7FFYGtRVjooGxPE3\u002B0n87Jl8h142bZN6l5NzWS54Wk0VnhMq04Hcyx/BWy/rLDVNZ8kgr4l5j3693YJB4jRbjWmjIlw20hkYn7w/dBJjjmtdJvJlWKvEmw\u002BUbPb\u002Bm\u002BjrZc3FRwrYFpWwCA/NOhtsWU4X47tB9jS\u002B34dNomUjGQTTUw5EnUZghBBdtFCc9mD0JxKn57ctqW\u002BZB2iDi3Mvje4K\u002BuYMKLsItl\u002Br40HjIugmWXpSfDJNpamfq5be3fmcLSdhkfx65/9WnjBYgcUuteV/XTH53RG8vVQ9bXwlKdhlD7YZgpDsq3F7\u002B90=", + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:44 GMT", + "Server": [ + "Windows-Azure-HDFS/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "4a4cd7f5-44be-240a-5faf-9d528a724c9b", + "x-ms-request-id": "afa0469b-e01f-002d-1971-75cc2c000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seannse.dfs.core.windows.net/test-filesystem-1f947d69-5f3d-4972-3d3f-9c98cdc1cd8d/test-file-dfd9b19b-0baf-59f2-2fa8-5d6472c4ea60?action=append\u0026position=512", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-57f58f7aa740004eaf99f8e26bcbc96d-9503481e9da30446-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "95e11cc7-31ab-c4ac-155f-0e76eb50c905", + "x-ms-date": "Tue, 18 Aug 2020 15:08:45 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "AfQk5HD1sV6Ax6JQFqTUpz16gjF0V/JyDxQyVJKxwH7hM7vIMFj8h3TLWJ1sZQLdvERu9vjKaKoCstRbw1zLzwckb\u002BLpC3fkffu8qf9UBaoRVZhOQsmFFssQxn6EoMMY/4iWR/Yg9LHNinj8Db6rrawpSW7DfY09n1gX2ET5X9w3pKp2vb608WDngLdQiAkNZRjRWldVVIH6WaidCRts0yubxGgUNPDtdVcN3P3V7BZOCXMsJwSF4U8oe2QVFuhFe6yMtMOg\u002BDAo4\u002BX/SHiEJWySTv\u002BnP6wmFeMZ67iL2F5vx2BQSTdSrhFCA0MfhpnXpFb4g8jpnTsAZZ7ghw14nAuGkIAXNNs0P6DtZTxoB49JQUdhk1SWhSklT\u002BSZcScDymY3mPYYv297w0Mn\u002Bzj/mF0PlkXGFwm37wpX8eX3m8546prVMG\u002BYMYLX5s8QbonxJreGidrhPbJdgKjswc2Kgyh1rxGdKWfud2XD7jA5p4GBZcsucRHzl63od7DGrHC0TGKnmr93U/xPlxJ1Hk6CI9knalsCXBIWgRhktbK2KMr0DqLOkgzBCRLO3tn/fnheZVPXnkEVsvBQkRinE51KmW9HgQ\u002Bss5HMZmBIM344FgOfBU9e34mJ31yyfgDzGfZ0hEVquPxosrLCCjjgzH5xF3oUCA1N7LnmvqKz\u002BjWQ2Uw=", + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:44 GMT", + "Server": [ + "Windows-Azure-HDFS/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "95e11cc7-31ab-c4ac-155f-0e76eb50c905", + "x-ms-request-id": "afa0469f-e01f-002d-1d71-75cc2c000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seannse.dfs.core.windows.net/test-filesystem-1f947d69-5f3d-4972-3d3f-9c98cdc1cd8d/test-file-dfd9b19b-0baf-59f2-2fa8-5d6472c4ea60?action=append\u0026position=1024", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-57f58f7aa740004eaf99f8e26bcbc96d-6b201b995abe6042-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "6e8b615f-b791-e7ef-aab1-57d40f37be5a", + "x-ms-date": "Tue, 18 Aug 2020 15:08:45 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "atOvOc5dBzZTnZvUUKgS3kBmhd4R6CeXi4P6WrW4fTEx7Hb4zjhJHA3RurBQ5ZUWj9W5zgr6OoGsF61KY6yBmiBqomQxGg8HHWnQQC52R6Xt5Mvf/q4mNrH0S7eK/rlhTx\u002BQ5kMx5HXGsrChKvpTNtAIXH/gopxxQ2uzPc5XfB\u002BvbvEO5mFivABWGUz\u002BhAy2oRXngqI5gayDHqLXfqambjWR8rsJRE9upaB/iohQcr5e/Jy4cPl8du1Ei8e/iz5Zr6oWbJJRrVzFeNwBuvYkM6vjeIEK7f07FHzNxLmIrxpiJdvdOQYsDU4/8/gderv3IFgb2xK8T8Gt2lgWg\u002BmjPcjCn5QbRvmlt2ozyvoEHpnA1qRgbNQHpdYaMF\u002BuFYplm7YvWtsn3NpedSSoiYTGqLu\u002BVqxEQtD0u/m9ABWZ96HgzS5E1cS\u002BmfrKAvawXxxRU4ek77/dIFnlO5/hadvExH6Cx7tWgtP2/72yekDZRFvcbK2O9QfiA6zVXpkl3S8fBT14Lpdh\u002B9G0rfACKqYYC/dDBP0tNs92n8QPgCM50SKNknQCYRbDe3Db2UgX4NgGvFOi4dky8c9uAo7TUXqtetvOdJcxFqrgf4iMUVyGXr/rCcTQlvBIWqGlk1\u002BH7yr1Ll9sSWxA1KaowWFQpp9z56PP6Ei23ePqhRn2jIJLWI8=", + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:44 GMT", + "Server": [ + "Windows-Azure-HDFS/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "6e8b615f-b791-e7ef-aab1-57d40f37be5a", + "x-ms-request-id": "afa046a1-e01f-002d-1f71-75cc2c000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seannse.dfs.core.windows.net/test-filesystem-1f947d69-5f3d-4972-3d3f-9c98cdc1cd8d/test-file-dfd9b19b-0baf-59f2-2fa8-5d6472c4ea60?action=append\u0026position=1536", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "212", + "traceparent": "00-57f58f7aa740004eaf99f8e26bcbc96d-326f042bf8692c4d-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "8917731d-5ac5-f873-9dc5-2bee86f4c8f1", + "x-ms-date": "Tue, 18 Aug 2020 15:08:45 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "XpYj/RoVU6o0HSfUj/e0ATGsu7gH4T5Re4HDUkpII11o0fIPfHbNjnw9FJi1DluNZfVa1o\u002BgiHxX0oGYUQBg6/rKbL0FpIW73i08yc2lm2wlNu1V7k3NyEh2t6n0NDx73Sme6qKeiMBvnvdiY76vsTYUchsTC/yt/aN0j\u002B3bx6rwweukB7HKh64t5VBVamSKxgVy38EhaNIs8ez/KfnTlNdNcqLTC6qFSups5iWsV5M\u002B6sjnaefozlgZdxXEyl61WlF5CPfCt7tb7ZXWtYGsf5lZwT4=", + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:44 GMT", + "Server": [ + "Windows-Azure-HDFS/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "8917731d-5ac5-f873-9dc5-2bee86f4c8f1", + "x-ms-request-id": "afa046a5-e01f-002d-2371-75cc2c000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seannse.dfs.core.windows.net/test-filesystem-1f947d69-5f3d-4972-3d3f-9c98cdc1cd8d/test-file-dfd9b19b-0baf-59f2-2fa8-5d6472c4ea60?action=flush\u0026position=1748", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "0", + "traceparent": "00-57f58f7aa740004eaf99f8e26bcbc96d-af14f5983025c64e-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "9bb6162d-3420-2395-8a8d-b8524dae625e", + "x-ms-date": "Tue, 18 Aug 2020 15:08:45 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:45 GMT", + "ETag": "\u00220x8D843889A3C8D04\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:08:45 GMT", + "Server": [ + "Windows-Azure-HDFS/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "9bb6162d-3420-2395-8a8d-b8524dae625e", + "x-ms-request-id": "afa046a8-e01f-002d-2671-75cc2c000000", + "x-ms-request-server-encrypted": "false", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seannse.blob.core.windows.net/test-filesystem-1f947d69-5f3d-4972-3d3f-9c98cdc1cd8d/test-file-dfd9b19b-0baf-59f2-2fa8-5d6472c4ea60", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-6fd0d86173fbe549b27eeedbe8d8c514-76a51d677ad8ba40-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "6fc0b66f-2c3d-b0d0-afd4-b7c132309815", + "x-ms-date": "Tue, 18 Aug 2020 15:08:46 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "1748", + "Content-Type": "application/octet-stream", + "Date": "Tue, 18 Aug 2020 15:08:45 GMT", + "ETag": "\u00220x8D843889A3C8D04\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:08:45 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "6fc0b66f-2c3d-b0d0-afd4-b7c132309815", + "x-ms-creation-time": "Tue, 18 Aug 2020 15:08:45 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "421796cf-401e-000b-7b71-758434000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": "CqNJxb9mPpNR0cfWpvvPtkAfs3Xa33HyV9CvkrV3YaSWWfWRJNTp2ZToUMBwPInfAQE2TGS9xSoyV27vtqve2m8iP0wFPpJsNtnh8Y\u002BwgRpGz5GzQBRA2ZPKXsxl\u002BiPoCnZRTf082cJvyRaK3NObgtVTqOYaKpla4mW5O9/FBjy2\u002BOcYXzMdCvXORHb\u002Btfy/Ltz3ElE8zuDc9muXg57jqsPa1OTsgyKhNp7wTOYiXCxp\u002BQwCzvTqeioHO2jHhoZX65mzI\u002BEY06u5VduzS4L6upo/LoqS4NzO8Fq55Ue62bAXmWBMbjlLUCVgSXgYNi6oDIHOiFf8xAq95DKGXu1k/3srnLEhrkth9N1kMZdjtrorEdjF7FFYGtRVjooGxPE3\u002B0n87Jl8h142bZN6l5NzWS54Wk0VnhMq04Hcyx/BWy/rLDVNZ8kgr4l5j3693YJB4jRbjWmjIlw20hkYn7w/dBJjjmtdJvJlWKvEmw\u002BUbPb\u002Bm\u002BjrZc3FRwrYFpWwCA/NOhtsWU4X47tB9jS\u002B34dNomUjGQTTUw5EnUZghBBdtFCc9mD0JxKn57ctqW\u002BZB2iDi3Mvje4K\u002BuYMKLsItl\u002Br40HjIugmWXpSfDJNpamfq5be3fmcLSdhkfx65/9WnjBYgcUuteV/XTH53RG8vVQ9bXwlKdhlD7YZgpDsq3F7\u002B90B9CTkcPWxXoDHolAWpNSnPXqCMXRX8nIPFDJUkrHAfuEzu8gwWPyHdMtYnWxlAt28RG72\u002BMpoqgKy1FvDXMvPByRv4ukLd\u002BR9\u002B7yp/1QFqhFVmE5CyYUWyxDGfoSgwxj/iJZH9iD0sc2KePwNvqutrClJbsN9jT2fWBfYRPlf3Dekqna9vrTxYOeAt1CICQ1lGNFaV1VUgfpZqJ0JG2zTK5vEaBQ08O11Vw3c/dXsFk4JcywnBIXhTyh7ZBUW6EV7rIy0w6D4MCjj5f9IeIQlbJJO/6c/rCYV4xnruIvYXm/HYFBJN1KuEUIDQx\u002BGmdekVviDyOmdOwBlnuCHDXicC4aQgBc02zQ/oO1lPGgHj0lBR2GTVJaFKSVP5JlxJwPKZjeY9hi/b3vDQyf7OP\u002BYXQ\u002BWRcYXCbfvClfx5febznjqmtUwb5gxgtfmzxBuifEmt4aJ2uE9sl2AqOzBzYqDKHWvEZ0pZ\u002B53ZcPuMDmngYFlyy5xEfOXreh3sMascLRMYqeav3dT/E\u002BXEnUeToIj2SdqWwJcEhaBGGS1srYoyvQOos6SDMEJEs7e2f9\u002BeF5lU9eeQRWy8FCRGKcTnUqZb0eBD6yzkcxmYEgzfjgWA58FT17fiYnfXLJ\u002BAPMZ9nSERWq4/GiyssIKOODMfnEXehQIDU3suea\u002BorP6NZDZTGrTrznOXQc2U52b1FCoEt5AZoXeEegnl4uD\u002Blq1uH0xMex2\u002BM44SRwN0bqwUOWVFo/Vuc4K\u002BjqBrBetSmOsgZogaqJkMRoPBx1p0EAudkel7eTL3/6uJjax9Eu3iv65YU8fkOZDMeR1xrKwoSr6UzbQCFx/4KKccUNrsz3OV3wfr27xDuZhYrwAVhlM/oQMtqEV54KiOYGsgx6i136mpm41kfK7CURPbqWgf4qIUHK\u002BXvycuHD5fHbtRIvHv4s\u002BWa\u002BqFmySUa1cxXjcAbr2JDOr43iBCu39OxR8zcS5iK8aYiXb3TkGLA1OP/P4HXq79yBYG9sSvE/BrdpYFoPpoz3Iwp\u002BUG0b5pbdqM8r6BB6ZwNakYGzUB6XWGjBfrhWKZZu2L1rbJ9zaXnUkqImExqi7vlasRELQ9Lv5vQAVmfeh4M0uRNXEvpn6ygL2sF8cUVOHpO\u002B/3SBZ5Tuf4WnbxMR\u002Bgse7VoLT9v\u002B9snpA2URb3GytjvUH4gOs1V6ZJd0vHwU9eC6XYfvRtK3wAiqmGAv3QwT9LTbPdp/ED4AjOdEijZJ0AmEWw3tw29lIF\u002BDYBrxTouHZMvHPbgKO01F6rXrbznSXMRaq4H\u002BIjFFchl6/6wnE0JbwSFqhpZNfh\u002B8q9S5fbElsQNSmqMFhUKafc\u002Bejz\u002BhItt3j6oUZ9oyCS1iPXpYj/RoVU6o0HSfUj/e0ATGsu7gH4T5Re4HDUkpII11o0fIPfHbNjnw9FJi1DluNZfVa1o\u002BgiHxX0oGYUQBg6/rKbL0FpIW73i08yc2lm2wlNu1V7k3NyEh2t6n0NDx73Sme6qKeiMBvnvdiY76vsTYUchsTC/yt/aN0j\u002B3bx6rwweukB7HKh64t5VBVamSKxgVy38EhaNIs8ez/KfnTlNdNcqLTC6qFSups5iWsV5M\u002B6sjnaefozlgZdxXEyl61WlF5CPfCt7tb7ZXWtYGsf5lZwT4=" + }, + { + "RequestUri": "https://seannse.blob.core.windows.net/test-filesystem-1f947d69-5f3d-4972-3d3f-9c98cdc1cd8d?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-20a63f8c28909c4fa038d475574a037a-7630bb22154aa94c-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "96e202e0-f3ee-1420-a972-9c68883100c0", + "x-ms-date": "Tue, 18 Aug 2020 15:08:46 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:45 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "96e202e0-f3ee-1420-a972-9c68883100c0", + "x-ms-request-id": "421796fd-401e-000b-2671-758434000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "1956843520", + "Storage_TestConfigHierarchicalNamespace": "NamespaceTenant\nseannse\nU2FuaXRpemVk\nhttps://seannse.blob.core.windows.net\nhttps://seannse.file.core.windows.net\nhttps://seannse.queue.core.windows.net\nhttps://seannse.table.core.windows.net\n\n\n\n\nhttps://seannse-secondary.blob.core.windows.net\nhttps://seannse-secondary.file.core.windows.net\nhttps://seannse-secondary.queue.core.windows.net\nhttps://seannse-secondary.table.core.windows.net\n68390a19-a643-458b-b726-408abf67b4fc\nSanitized\n72f988bf-86f1-41af-91ab-2d7cd011db47\nhttps://login.microsoftonline.com/\nCloud\nBlobEndpoint=https://seannse.blob.core.windows.net/;QueueEndpoint=https://seannse.queue.core.windows.net/;FileEndpoint=https://seannse.file.core.windows.net/;BlobSecondaryEndpoint=https://seannse-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seannse-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seannse-secondary.file.core.windows.net/;AccountName=seannse;AccountKey=Sanitized\n" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocksAsync.json b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocksAsync.json new file mode 100644 index 0000000000000..a8001294d6750 --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocksAsync.json @@ -0,0 +1,304 @@ +{ + "Entries": [ + { + "RequestUri": "https://seannse.blob.core.windows.net/test-filesystem-494e0b72-d3d8-cc9d-ca60-47d5b0288026?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-201176bebaf78346a9ee90db4f94045e-7cdf2479f4536d4b-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "a8c32e4b-1806-dd6f-7076-74bf4b97747a", + "x-ms-date": "Tue, 18 Aug 2020 15:08:48 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:47 GMT", + "ETag": "\u00220x8D843889BD16B2D\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:08:48 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "a8c32e4b-1806-dd6f-7076-74bf4b97747a", + "x-ms-request-id": "a9f0b5c2-401e-00a2-2871-754546000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seannse.dfs.core.windows.net/test-filesystem-494e0b72-d3d8-cc9d-ca60-47d5b0288026/test-file-750e436d-630f-3ac5-ca80-d69f71753506?resource=file", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-f901f2d05d0648428bd340bdd3d8edd6-9449bacf32ae0d46-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "303f136a-6a1b-ce26-c061-a0bbe7bd2b49", + "x-ms-date": "Tue, 18 Aug 2020 15:08:48 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:48 GMT", + "ETag": "\u00220x8D843889C057F2F\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:08:48 GMT", + "Server": [ + "Windows-Azure-HDFS/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "303f136a-6a1b-ce26-c061-a0bbe7bd2b49", + "x-ms-request-id": "77979068-901f-007a-2571-75621f000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seannse.dfs.core.windows.net/test-filesystem-494e0b72-d3d8-cc9d-ca60-47d5b0288026/test-file-750e436d-630f-3ac5-ca80-d69f71753506?action=append\u0026position=0", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-7770851d7a9fe34fb96a4cd0a81d0e93-e6b650d1dda09548-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "79ab665f-ea76-f1c1-a5cf-0d23f45686f0", + "x-ms-date": "Tue, 18 Aug 2020 15:08:49 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "yA2Tz7zCfyhFmOb7y5oBwq3wNxDsrkiYygB8sfWGUInnyFx4QgI\u002BekVn8RRp0ZlBvObAId\u002BSchnE\u002BwS8Rc4yv0hdEwI9iH\u002BqsbzLhbw0L/hmO/QPxS\u002BpVVVCs0f\u002BgjR2NDLMC76WAzNmFm8ix\u002B1dkMsMVQrZI/kYtL6s\u002BtU4rC6IVFCJZyM6zzfAqK\u002B/ho5o5SN78i0qnBE4s1f/6gheLWpBmnKd0yio0YXSGXpKWS0vRBWxvbkAXrc\u002BUbTMOuUvYXpFfewbyhL60yCoWIOW7lkp0KXzrXCwQDu7XoJ025efo7f/BdxBE3oDtuqZWAY0qGNaompAO7QKlD2wYGuPhveJCLXLluh96Lwq8PaGF\u002Bc1hrYeGTktX2cD9XCfkbIOczDyD1BQaBF63bmtFUu\u002BhH1Vetq1cW2\u002BXKlNyKF33lcKHHzGkweX5B6kpDx/f0kbRHHzSRbYWQLCNLOmA59wA/5io/nO\u002BPF1vZW7EcwxPtxfMYQwhJRAMcN6A15U8eF\u002BM6E9HdxQTUyAfYyBHUg1kfbWRtEbQH9qIXE2VPSSIMuzPN0r8yH/D\u002BQ3sAYHvxR7RHFnfqoQY/Mh0/trGvlX7VzAzeBrCZ7V1jft45B4YmJdug\u002BDKqIho9npCR8llPXr4MKpRvI0DzvTkqdzI39jqXCZDl/p1MK6nykGgf9\u002Br0I=", + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:48 GMT", + "Server": [ + "Windows-Azure-HDFS/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "79ab665f-ea76-f1c1-a5cf-0d23f45686f0", + "x-ms-request-id": "7797907e-901f-007a-3b71-75621f000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seannse.dfs.core.windows.net/test-filesystem-494e0b72-d3d8-cc9d-ca60-47d5b0288026/test-file-750e436d-630f-3ac5-ca80-d69f71753506?action=append\u0026position=512", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-7770851d7a9fe34fb96a4cd0a81d0e93-72c1e0a665239140-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "815c7dcb-b112-3ad3-4318-4a9fe916da77", + "x-ms-date": "Tue, 18 Aug 2020 15:08:49 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "QgEDzc8bcCiq07CY\u002B66AWoZgroyFlQEMAO\u002BmyC6OO1TjZDAhe5XZVSnltBUjKr/xqav7ns8jvKz/983gdKf6HJhbtJZ9Xt/whllioOHr6NUvtR6Ck5yFv6eEIYTH\u002BeCB6pd9yHUodErMChh1wBzLEw74sL\u002BJd4n71vTu\u002BT1aKY154LVJbh9fB0DUtoiED/\u002BLuA11z0gg\u002BHMOgvKAOXsNceGK\u002B99mgqXumKl\u002BtMEAdsb1YkAv5FlEWehCO\u002Bwt3s3FxkSn\u002BhMfJTZohjefokOxDQsri9Y73o2HRaL3I0a5wbnbuO18WHyy1j0Jxl0ipLakkC3gAVP2iui3ILRxJwHvrsV9xOlVNbSOeLSZMRcvZKHrU5MZ2L9l5S4FxTjIQa88GReYpODNTlt4UoieXVnRh7sShdRt1tYFF9\u002B6UHB8xTcFXBf/l7/AHgQ4oIY2x4fVND18tbzazkNBko0BEv3r/IxRmQBB0fD7UmbPNTVPzlBX5Rwy/w96Ko7UvgQyvgsHTaT55S2Hk2JMgGNVC5gO8cQ8qi3huP181m5ybRLsyZNbyOiQVukjz1G55n6sJR/1xcxA9hTeJZSnfQ6/FSZQYLfP\u002BkKvfZvaGdvbJ9J/0LFPfKdGrNJ/faJT6djaY7oqaYXG3SrcRUgxZdw5Av7CJ61cb5h/CrTkT32gW5PCALU=", + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:48 GMT", + "Server": [ + "Windows-Azure-HDFS/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "815c7dcb-b112-3ad3-4318-4a9fe916da77", + "x-ms-request-id": "ba190c61-801f-0076-3e71-75f517000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seannse.dfs.core.windows.net/test-filesystem-494e0b72-d3d8-cc9d-ca60-47d5b0288026/test-file-750e436d-630f-3ac5-ca80-d69f71753506?action=append\u0026position=1024", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-7770851d7a9fe34fb96a4cd0a81d0e93-21f736c9b124a84f-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "76573245-04f9-a9de-4ed7-cdc4a1488ac2", + "x-ms-date": "Tue, 18 Aug 2020 15:08:49 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "ILC\u002BTLjyh3I2XhRH9UZ6pJHCK330Iatf0eGNrTzptW5kJxhRQHZvutX8YiD1bO4IAvzK0ZaDwf8FXnrWZdk2TKml4s4uKGMaUnGn97\u002BKamTyhKpAH\u002BTY4WYYTOH7mFT8xRV3T4og2tqYsH4l28pAe/QV5OEu9i3FzQBoFdyCHrocqzGpEhra0qnQp25lswac2NHt5rRzzc/nsoGJt8T9FZHECDCYlmjZOxE3XU6\u002BXxr6zD0KlDgGqd1iwmCZUBrl0pHdoarVA0FpE6qiPHCAKFJmjuuH84FYvl5TNtQHQOr3Uoq94b5vJcj7oYGNY21t4pkNMsIuXd8QhONMgsxtYdO/qurlw0aU92kijFH/y1rx5lQ6\u002Bg0oyPSqrF3aI6L8jUCtzriDhx5SeDtYDNGOELmJWpx4M2fFl\u002BL1OhfpudPGJv4RUv2hbl4154HS0LwiHJukUcgGg1rY5zbWjU0Hab5nkeXTfb685\u002Bw\u002BQ0vl88cm0x18RWgLwKOkOGvGyuEQLX7Caz7WTp/c52nbyEAO8/Rvr7kviyRWXNFCL0VT9R0LLRXNI4iIUIR\u002Bn13\u002BL/hilUV2Vhsn4KFabA5tkx9ZifJM0JoqQc9r5l80sezGVy3Z35n/3J4C40xzc7d5G7xkJBZrsl5dN1R1C3C78i\u002B1kxThlLOGWaxTSuxNt80Y8so=", + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:48 GMT", + "Server": [ + "Windows-Azure-HDFS/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "76573245-04f9-a9de-4ed7-cdc4a1488ac2", + "x-ms-request-id": "b942f159-f01f-0043-5f71-759903000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seannse.dfs.core.windows.net/test-filesystem-494e0b72-d3d8-cc9d-ca60-47d5b0288026/test-file-750e436d-630f-3ac5-ca80-d69f71753506?action=append\u0026position=1536", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "212", + "traceparent": "00-7770851d7a9fe34fb96a4cd0a81d0e93-4e74edd938b8cd49-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "b759b4e0-63bf-847d-e212-d3fcb781d236", + "x-ms-date": "Tue, 18 Aug 2020 15:08:49 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "otCM1lulznuoRIrRLkbxHb7fopiHCd7KaRhncg\u002BAhlwZpRgiot44bxMYC0LP2yQE\u002BzD47nZaQ5nxwW1DPVtsJ70tuIgtznrfpzOEb/2c\u002B43zY3ffiJjmvmJ/MOFx9DG4rOSEoSOb1iy1GEZC1dSbVcbfT9rjjJ4kR/kmrp2ZbrMCzMIZF1ppV41LKW9So\u002BmO49obkaRX1B9FX1kqdSeOHKqTQAkRgj5rdvhMmGMv0qMPmMvCfdwOq/ej07gAP\u002BJlvA3Ev2PffGCcrxusCju8Foy2Gtw=", + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:48 GMT", + "Server": [ + "Windows-Azure-HDFS/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "b759b4e0-63bf-847d-e212-d3fcb781d236", + "x-ms-request-id": "a25c666b-a01f-0061-5d71-755c1c000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seannse.dfs.core.windows.net/test-filesystem-494e0b72-d3d8-cc9d-ca60-47d5b0288026/test-file-750e436d-630f-3ac5-ca80-d69f71753506?action=flush\u0026position=1748", + "RequestMethod": "PATCH", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "0", + "traceparent": "00-7770851d7a9fe34fb96a4cd0a81d0e93-fcf6d5a361acf849-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "ede43e23-d3ee-3302-6cfe-1440950c8fb5", + "x-ms-date": "Tue, 18 Aug 2020 15:08:49 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:48 GMT", + "ETag": "\u00220x8D843889C52AC72\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:08:49 GMT", + "Server": [ + "Windows-Azure-HDFS/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "ede43e23-d3ee-3302-6cfe-1440950c8fb5", + "x-ms-request-id": "a25c666d-a01f-0061-5f71-755c1c000000", + "x-ms-request-server-encrypted": "false", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seannse.blob.core.windows.net/test-filesystem-494e0b72-d3d8-cc9d-ca60-47d5b0288026/test-file-750e436d-630f-3ac5-ca80-d69f71753506", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-9671b3e7c2a2634c837ef0af72b93d39-c2189cd7261b1346-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "78d8537b-e59d-d948-da3a-2f332c02461d", + "x-ms-date": "Tue, 18 Aug 2020 15:08:49 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "1748", + "Content-Type": "application/octet-stream", + "Date": "Tue, 18 Aug 2020 15:08:48 GMT", + "ETag": "\u00220x8D843889C52AC72\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:08:49 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "78d8537b-e59d-d948-da3a-2f332c02461d", + "x-ms-creation-time": "Tue, 18 Aug 2020 15:08:48 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "a9f0bb67-401e-00a2-1371-754546000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": "yA2Tz7zCfyhFmOb7y5oBwq3wNxDsrkiYygB8sfWGUInnyFx4QgI\u002BekVn8RRp0ZlBvObAId\u002BSchnE\u002BwS8Rc4yv0hdEwI9iH\u002BqsbzLhbw0L/hmO/QPxS\u002BpVVVCs0f\u002BgjR2NDLMC76WAzNmFm8ix\u002B1dkMsMVQrZI/kYtL6s\u002BtU4rC6IVFCJZyM6zzfAqK\u002B/ho5o5SN78i0qnBE4s1f/6gheLWpBmnKd0yio0YXSGXpKWS0vRBWxvbkAXrc\u002BUbTMOuUvYXpFfewbyhL60yCoWIOW7lkp0KXzrXCwQDu7XoJ025efo7f/BdxBE3oDtuqZWAY0qGNaompAO7QKlD2wYGuPhveJCLXLluh96Lwq8PaGF\u002Bc1hrYeGTktX2cD9XCfkbIOczDyD1BQaBF63bmtFUu\u002BhH1Vetq1cW2\u002BXKlNyKF33lcKHHzGkweX5B6kpDx/f0kbRHHzSRbYWQLCNLOmA59wA/5io/nO\u002BPF1vZW7EcwxPtxfMYQwhJRAMcN6A15U8eF\u002BM6E9HdxQTUyAfYyBHUg1kfbWRtEbQH9qIXE2VPSSIMuzPN0r8yH/D\u002BQ3sAYHvxR7RHFnfqoQY/Mh0/trGvlX7VzAzeBrCZ7V1jft45B4YmJdug\u002BDKqIho9npCR8llPXr4MKpRvI0DzvTkqdzI39jqXCZDl/p1MK6nykGgf9\u002Br0JCAQPNzxtwKKrTsJj7roBahmCujIWVAQwA76bILo47VONkMCF7ldlVKeW0FSMqv/Gpq/uezyO8rP/3zeB0p/ocmFu0ln1e3/CGWWKg4evo1S\u002B1HoKTnIW/p4QhhMf54IHql33IdSh0SswKGHXAHMsTDviwv4l3ifvW9O75PVopjXngtUluH18HQNS2iIQP/4u4DXXPSCD4cw6C8oA5ew1x4Yr732aCpe6YqX60wQB2xvViQC/kWURZ6EI77C3ezcXGRKf6Ex8lNmiGN5\u002BiQ7ENCyuL1jvejYdFovcjRrnBudu47XxYfLLWPQnGXSKktqSQLeABU/aK6LcgtHEnAe\u002BuxX3E6VU1tI54tJkxFy9koetTkxnYv2XlLgXFOMhBrzwZF5ik4M1OW3hSiJ5dWdGHuxKF1G3W1gUX37pQcHzFNwVcF/\u002BXv8AeBDighjbHh9U0PXy1vNrOQ0GSjQES/ev8jFGZAEHR8PtSZs81NU/OUFflHDL/D3oqjtS\u002BBDK\u002BCwdNpPnlLYeTYkyAY1ULmA7xxDyqLeG4/XzWbnJtEuzJk1vI6JBW6SPPUbnmfqwlH/XFzED2FN4llKd9Dr8VJlBgt8/6Qq99m9oZ29sn0n/QsU98p0as0n99olPp2NpjuipphcbdKtxFSDFl3DkC/sInrVxvmH8KtORPfaBbk8IAtSCwvky48odyNl4UR/VGeqSRwit99CGrX9Hhja086bVuZCcYUUB2b7rV/GIg9WzuCAL8ytGWg8H/BV561mXZNkyppeLOLihjGlJxp/e/impk8oSqQB/k2OFmGEzh\u002B5hU/MUVd0\u002BKINramLB\u002BJdvKQHv0FeThLvYtxc0AaBXcgh66HKsxqRIa2tKp0KduZbMGnNjR7ea0c83P57KBibfE/RWRxAgwmJZo2TsRN11Ovl8a\u002Bsw9CpQ4BqndYsJgmVAa5dKR3aGq1QNBaROqojxwgChSZo7rh/OBWL5eUzbUB0Dq91KKveG\u002BbyXI\u002B6GBjWNtbeKZDTLCLl3fEITjTILMbWHTv6rq5cNGlPdpIoxR/8ta8eZUOvoNKMj0qqxd2iOi/I1Arc64g4ceUng7WAzRjhC5iVqceDNnxZfi9ToX6bnTxib\u002BEVL9oW5eNeeB0tC8IhybpFHIBoNa2Oc21o1NB2m\u002BZ5Hl032\u002BvOfsPkNL5fPHJtMdfEVoC8CjpDhrxsrhEC1\u002Bwms\u002B1k6f3Odp28hADvP0b6\u002B5L4skVlzRQi9FU/UdCy0VzSOIiFCEfp9d/i/4YpVFdlYbJ\u002BChWmwObZMfWYnyTNCaKkHPa\u002BZfNLHsxlct2d\u002BZ/9yeAuNMc3O3eRu8ZCQWa7JeXTdUdQtwu/IvtZMU4ZSzhlmsU0rsTbfNGPLKotCM1lulznuoRIrRLkbxHb7fopiHCd7KaRhncg\u002BAhlwZpRgiot44bxMYC0LP2yQE\u002BzD47nZaQ5nxwW1DPVtsJ70tuIgtznrfpzOEb/2c\u002B43zY3ffiJjmvmJ/MOFx9DG4rOSEoSOb1iy1GEZC1dSbVcbfT9rjjJ4kR/kmrp2ZbrMCzMIZF1ppV41LKW9So\u002BmO49obkaRX1B9FX1kqdSeOHKqTQAkRgj5rdvhMmGMv0qMPmMvCfdwOq/ej07gAP\u002BJlvA3Ev2PffGCcrxusCju8Foy2Gtw=" + }, + { + "RequestUri": "https://seannse.blob.core.windows.net/test-filesystem-494e0b72-d3d8-cc9d-ca60-47d5b0288026?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-c779d6295373dd438bff53fef25e9f68-2e55f2870fe5744c-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "41c5367b-1633-3018-8253-5926e628736e", + "x-ms-date": "Tue, 18 Aug 2020 15:08:49 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:48 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "41c5367b-1633-3018-8253-5926e628736e", + "x-ms-request-id": "a9f0bbfe-401e-00a2-1671-754546000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "966468789", + "Storage_TestConfigHierarchicalNamespace": "NamespaceTenant\nseannse\nU2FuaXRpemVk\nhttps://seannse.blob.core.windows.net\nhttps://seannse.file.core.windows.net\nhttps://seannse.queue.core.windows.net\nhttps://seannse.table.core.windows.net\n\n\n\n\nhttps://seannse-secondary.blob.core.windows.net\nhttps://seannse-secondary.file.core.windows.net\nhttps://seannse-secondary.queue.core.windows.net\nhttps://seannse-secondary.table.core.windows.net\n68390a19-a643-458b-b726-408abf67b4fc\nSanitized\n72f988bf-86f1-41af-91ab-2d7cd011db47\nhttps://login.microsoftonline.com/\nCloud\nBlobEndpoint=https://seannse.blob.core.windows.net/;QueueEndpoint=https://seannse.queue.core.windows.net/;FileEndpoint=https://seannse.file.core.windows.net/;BlobSecondaryEndpoint=https://seannse-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seannse-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seannse-secondary.file.core.windows.net/;AccountName=seannse;AccountKey=Sanitized\n" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/UploadAsync_Stream_InvalidStreamPosition.json b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/UploadAsync_Stream_InvalidStreamPosition.json new file mode 100644 index 0000000000000..75b1e91a1d81f --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/UploadAsync_Stream_InvalidStreamPosition.json @@ -0,0 +1,104 @@ +{ + "Entries": [ + { + "RequestUri": "https://seannse.blob.core.windows.net/test-filesystem-9769167b-8363-ca83-a82b-4e2162b84438?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-9a8831c1cd4edf4ba6f5815b865a2749-0b1ea0241aeb9f43-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "3536f655-7aa8-cb7a-4528-810c644850a3", + "x-ms-date": "Tue, 18 Aug 2020 15:08:46 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:45 GMT", + "ETag": "\u00220x8D843889A892AF6\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:08:46 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "3536f655-7aa8-cb7a-4528-810c644850a3", + "x-ms-request-id": "852933b6-101e-0029-0871-75412b000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seannse.dfs.core.windows.net/test-filesystem-9769167b-8363-ca83-a82b-4e2162b84438/test-file-0209970e-f4d4-6976-2e35-71542ee7e75f?resource=file", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-None-Match": "*", + "traceparent": "00-1b5fa8009bc9f04aaca661d9d43047f5-b9e278dce395a54b-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "98302fc5-1970-96fe-263c-ba12212e1055", + "x-ms-date": "Tue, 18 Aug 2020 15:08:46 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:45 GMT", + "ETag": "\u00220x8D843889ABCF8BA\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:08:46 GMT", + "Server": [ + "Windows-Azure-HDFS/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "98302fc5-1970-96fe-263c-ba12212e1055", + "x-ms-request-id": "3f092f17-901f-0008-0171-756550000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seannse.blob.core.windows.net/test-filesystem-9769167b-8363-ca83-a82b-4e2162b84438?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-b30c0394a9cc5847bdfc48faa3f995a9-5d3f461769b55443-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "26d16873-686a-2903-d820-5eb4cd52413f", + "x-ms-date": "Tue, 18 Aug 2020 15:08:46 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:46 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "26d16873-686a-2903-d820-5eb4cd52413f", + "x-ms-request-id": "8529349d-101e-0029-4d71-75412b000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "848705552", + "Storage_TestConfigHierarchicalNamespace": "NamespaceTenant\nseannse\nU2FuaXRpemVk\nhttps://seannse.blob.core.windows.net\nhttps://seannse.file.core.windows.net\nhttps://seannse.queue.core.windows.net\nhttps://seannse.table.core.windows.net\n\n\n\n\nhttps://seannse-secondary.blob.core.windows.net\nhttps://seannse-secondary.file.core.windows.net\nhttps://seannse-secondary.queue.core.windows.net\nhttps://seannse-secondary.table.core.windows.net\n68390a19-a643-458b-b726-408abf67b4fc\nSanitized\n72f988bf-86f1-41af-91ab-2d7cd011db47\nhttps://login.microsoftonline.com/\nCloud\nBlobEndpoint=https://seannse.blob.core.windows.net/;QueueEndpoint=https://seannse.queue.core.windows.net/;FileEndpoint=https://seannse.file.core.windows.net/;BlobSecondaryEndpoint=https://seannse-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seannse-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seannse-secondary.file.core.windows.net/;AccountName=seannse;AccountKey=Sanitized\n" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/UploadAsync_Stream_InvalidStreamPositionAsync.json b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/UploadAsync_Stream_InvalidStreamPositionAsync.json new file mode 100644 index 0000000000000..cb3f087148281 --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/UploadAsync_Stream_InvalidStreamPositionAsync.json @@ -0,0 +1,104 @@ +{ + "Entries": [ + { + "RequestUri": "https://seannse.blob.core.windows.net/test-filesystem-eeab4dbb-269e-cd61-dbcc-4676288735b3?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-d0a0e99069226c45ab74e35b4c062a08-820634a102b67e48-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "35b993f3-5264-ef9f-5443-eed5ca9395d2", + "x-ms-date": "Tue, 18 Aug 2020 15:08:49 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:49 GMT", + "ETag": "\u00220x8D843889C9D3C58\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:08:49 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "35b993f3-5264-ef9f-5443-eed5ca9395d2", + "x-ms-request-id": "250eb041-201e-001d-3471-7572e3000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seannse.dfs.core.windows.net/test-filesystem-eeab4dbb-269e-cd61-dbcc-4676288735b3/test-file-9ce22d44-84e2-0d33-9eea-dbb39e85df47?resource=file", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-None-Match": "*", + "traceparent": "00-448339dd73b5344a997678a463af95e7-3ec77c7bf0402948-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "75313d43-f1b5-6b9c-7256-84a26489a158", + "x-ms-date": "Tue, 18 Aug 2020 15:08:50 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:49 GMT", + "ETag": "\u00220x8D843889CCF4495\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:08:49 GMT", + "Server": [ + "Windows-Azure-HDFS/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "75313d43-f1b5-6b9c-7256-84a26489a158", + "x-ms-request-id": "cf6b2597-401f-0046-1c71-754bd8000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seannse.blob.core.windows.net/test-filesystem-eeab4dbb-269e-cd61-dbcc-4676288735b3?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-b4dd33339d7eab488c5d18ecebf088ff-6d52ab6340650d45-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "084d6f89-8e87-514b-c41d-f3a62f72b1c7", + "x-ms-date": "Tue, 18 Aug 2020 15:08:50 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:08:49 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "084d6f89-8e87-514b-c41d-f3a62f72b1c7", + "x-ms-request-id": "250eb11e-201e-001d-6c71-7572e3000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "792626114", + "Storage_TestConfigHierarchicalNamespace": "NamespaceTenant\nseannse\nU2FuaXRpemVk\nhttps://seannse.blob.core.windows.net\nhttps://seannse.file.core.windows.net\nhttps://seannse.queue.core.windows.net\nhttps://seannse.table.core.windows.net\n\n\n\n\nhttps://seannse-secondary.blob.core.windows.net\nhttps://seannse-secondary.file.core.windows.net\nhttps://seannse-secondary.queue.core.windows.net\nhttps://seannse-secondary.table.core.windows.net\n68390a19-a643-458b-b726-408abf67b4fc\nSanitized\n72f988bf-86f1-41af-91ab-2d7cd011db47\nhttps://login.microsoftonline.com/\nCloud\nBlobEndpoint=https://seannse.blob.core.windows.net/;QueueEndpoint=https://seannse.queue.core.windows.net/;FileEndpoint=https://seannse.file.core.windows.net/;BlobSecondaryEndpoint=https://seannse-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seannse-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seannse-secondary.file.core.windows.net/;AccountName=seannse;AccountKey=Sanitized\n" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.Shares/src/ShareFileClient.cs b/sdk/storage/Azure.Storage.Files.Shares/src/ShareFileClient.cs index 92ff49a5fb731..a2841f264d5bd 100644 --- a/sdk/storage/Azure.Storage.Files.Shares/src/ShareFileClient.cs +++ b/sdk/storage/Azure.Storage.Files.Shares/src/ShareFileClient.cs @@ -4034,6 +4034,8 @@ internal async Task> UploadInternal( bool async, CancellationToken cancellationToken) { + Errors.VerifyStreamPosition(content); + // Try to upload the file as a single range Debug.Assert(singleRangeThreshold <= Constants.File.MaxFileUpdateRange); var length = content.Length - content.Position; diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/FileTestBase.cs b/sdk/storage/Azure.Storage.Files.Shares/tests/FileTestBase.cs index e7ad8fc5e702a..542c46cc9b55a 100644 --- a/sdk/storage/Azure.Storage.Files.Shares/tests/FileTestBase.cs +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/FileTestBase.cs @@ -26,7 +26,7 @@ public class FileTestBase : StorageTestBase public static Uri s_invalidUri = new Uri("https://error.file.core.windows.net"); public FileTestBase(bool async, ShareClientOptions.ServiceVersion serviceVersion, RecordedTestMode? mode = null) - : base(async, RecordedTestMode.Live) + : base(async, mode) { _serviceVersion = serviceVersion; } diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPosition.json b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPosition.json new file mode 100644 index 0000000000000..d194f7ed54129 --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPosition.json @@ -0,0 +1,246 @@ +{ + "Entries": [ + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-4bba37d0-e906-5369-0710-d1b771317b95?restype=share", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-2e2d92579b0f1f4797d940e2c8998996-babc5f283c333747-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "f4de11a2-a4f6-0d16-b8cf-43946c740757", + "x-ms-date": "Tue, 18 Aug 2020 15:12:59 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:12:59 GMT", + "ETag": "\u00220x8D8438931F48F96\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:13:00 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "f4de11a2-a4f6-0d16-b8cf-43946c740757", + "x-ms-request-id": "6d9156aa-f01a-0015-5b72-75c893000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-4bba37d0-e906-5369-0710-d1b771317b95/test-directory-0abdd92c-e423-4101-cfa4-50f7a51d852c?restype=directory", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-db38c3fbf28ba946abddde67bd37bd2c-50ea28ee068c894e-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "f420ec07-151d-be5e-109d-2452541f679b", + "x-ms-date": "Tue, 18 Aug 2020 15:13:00 GMT", + "x-ms-file-attributes": "None", + "x-ms-file-creation-time": "Now", + "x-ms-file-last-write-time": "Now", + "x-ms-file-permission": "Inherit", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:12:59 GMT", + "ETag": "\u00220x8D84389320859A9\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:13:00 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "f420ec07-151d-be5e-109d-2452541f679b", + "x-ms-file-attributes": "Directory", + "x-ms-file-change-time": "2020-08-18T15:13:00.1913769Z", + "x-ms-file-creation-time": "2020-08-18T15:13:00.1913769Z", + "x-ms-file-id": "13835128424026341376", + "x-ms-file-last-write-time": "2020-08-18T15:13:00.1913769Z", + "x-ms-file-parent-id": "0", + "x-ms-file-permission-key": "5337567907660077720*2506815767522118929", + "x-ms-request-id": "6d9156af-f01a-0015-5c72-75c893000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-4bba37d0-e906-5369-0710-d1b771317b95/test-directory-0abdd92c-e423-4101-cfa4-50f7a51d852c/test-file-1da41749-a860-a404-3b00-91c339fef4fb", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-a1ffb0f99f68134faeb526f08d87a002-982630f317fb1243-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "35b90ff8-8b2f-5e25-e87b-b81d839b8412", + "x-ms-content-length": "512", + "x-ms-date": "Tue, 18 Aug 2020 15:13:00 GMT", + "x-ms-file-attributes": "None", + "x-ms-file-creation-time": "Now", + "x-ms-file-last-write-time": "Now", + "x-ms-file-permission": "Inherit", + "x-ms-return-client-request-id": "true", + "x-ms-type": "file", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:12:59 GMT", + "ETag": "\u00220x8D84389321AD39F\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:13:00 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "35b90ff8-8b2f-5e25-e87b-b81d839b8412", + "x-ms-file-attributes": "Archive", + "x-ms-file-change-time": "2020-08-18T15:13:00.3124639Z", + "x-ms-file-creation-time": "2020-08-18T15:13:00.3124639Z", + "x-ms-file-id": "11529285414812647424", + "x-ms-file-last-write-time": "2020-08-18T15:13:00.3124639Z", + "x-ms-file-parent-id": "13835128424026341376", + "x-ms-file-permission-key": "9973529139831694751*2506815767522118929", + "x-ms-request-id": "6d9156b1-f01a-0015-5d72-75c893000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-4bba37d0-e906-5369-0710-d1b771317b95/test-directory-0abdd92c-e423-4101-cfa4-50f7a51d852c/test-file-1da41749-a860-a404-3b00-91c339fef4fb?comp=range", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-d6c14eb3c28997438ee8c29e3db90a3a-31b3ff2289189641-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "9cd44bf0-5f34-cff5-445d-49a8aec726cc", + "x-ms-date": "Tue, 18 Aug 2020 15:13:00 GMT", + "x-ms-range": "bytes=0-511", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12", + "x-ms-write": "update" + }, + "RequestBody": "FcHmXAT8i4uLxNSa8eYt70lRUFjgFWBUPpiDUGUEbV5\u002BFTg5L/C0ZBr9MsYIllu/yNOTe\u002Bxu\u002BABgkR1seDolhlZ2HNyu9L9ZnOw\u002B4\u002BOaS6g8xIiScfJxDxw32J3SSOvf16twknl\u002BENQTOt7/MBQdxkZ1L7OykhVjBAy/dxshhlQBXgw3KrkuvbSzfzYTct8IGRJXXRg3LESVDI5svpm48bOK/tEI5ZyNRnH//hPfUJItt10JySk8yTLHoh4qwf4a\u002Bo2CiHQN/zN2yhemNy0xtrv7Pwc8ryiKTjSfQUN\u002BYoRy5QSGXMceH7gpk/8SlZIEletiL4L33kpl9zpAbr3w92iSM1Epq1nz3SBOEhwoeLihmqtXGzMCewe5IGSN3rD6OZuWf2FA2\u002BqRb1FhqcstPH\u002BCntQRmNw1kLhKcIr1Zv9vU9mBkflWYb/BxqvhoNE8i\u002BTlCj/c6aG\u002BYe\u002Bp9WpgnAlR8lXyrKqGKzwUUNEwU\u002B/mDuWlD1u/k2o3wjAJrWtUYSmij658St46X98Cx5jPjg0AwueFuoytkV7quul6fH3RwO\u002BojcNAasQGa7B7vcvSaDQiCeuEzqac9f5PkZD1v\u002BNiMQepJgBKv1gjf07cMdSSGFG0WHKRTfFIC5jF8dg0EKvNGYvEKEE02EqTYU9Xv8MpvHk\u002BQGdw0OMWYBtnhM0=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Content-MD5": "lMZ5qTA6xFQQVwV5F0/Eww==", + "Date": "Tue, 18 Aug 2020 15:12:59 GMT", + "ETag": "\u00220x8D84389322A18A7\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:13:00 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "9cd44bf0-5f34-cff5-445d-49a8aec726cc", + "x-ms-request-id": "6d9156b2-f01a-0015-5e72-75c893000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-4bba37d0-e906-5369-0710-d1b771317b95/test-directory-0abdd92c-e423-4101-cfa4-50f7a51d852c/test-file-1da41749-a860-a404-3b00-91c339fef4fb", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-e8cfedf781669847b763dc5ec1717eca-b5a7fb5c7f68ea42-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "cf7073f7-e892-2099-f89f-5eb2cea02028", + "x-ms-date": "Tue, 18 Aug 2020 15:13:00 GMT", + "x-ms-range": "bytes=0-", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 206, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Access-Control-Allow-Origin": "*", + "Content-Length": "512", + "Content-Range": "bytes 0-511/512", + "Content-Type": "application/octet-stream", + "Date": "Tue, 18 Aug 2020 15:12:59 GMT", + "ETag": "\u00220x8D84389322A18A7\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:13:00 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "cf7073f7-e892-2099-f89f-5eb2cea02028", + "x-ms-file-attributes": "Archive", + "x-ms-file-change-time": "2020-08-18T15:13:00.3124639Z", + "x-ms-file-creation-time": "2020-08-18T15:13:00.3124639Z", + "x-ms-file-id": "11529285414812647424", + "x-ms-file-last-write-time": "2020-08-18T15:13:00.3124639Z", + "x-ms-file-parent-id": "13835128424026341376", + "x-ms-file-permission-key": "9973529139831694751*2506815767522118929", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "6d9156b3-f01a-0015-5f72-75c893000000", + "x-ms-server-encrypted": "true", + "x-ms-type": "File", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": "FcHmXAT8i4uLxNSa8eYt70lRUFjgFWBUPpiDUGUEbV5\u002BFTg5L/C0ZBr9MsYIllu/yNOTe\u002Bxu\u002BABgkR1seDolhlZ2HNyu9L9ZnOw\u002B4\u002BOaS6g8xIiScfJxDxw32J3SSOvf16twknl\u002BENQTOt7/MBQdxkZ1L7OykhVjBAy/dxshhlQBXgw3KrkuvbSzfzYTct8IGRJXXRg3LESVDI5svpm48bOK/tEI5ZyNRnH//hPfUJItt10JySk8yTLHoh4qwf4a\u002Bo2CiHQN/zN2yhemNy0xtrv7Pwc8ryiKTjSfQUN\u002BYoRy5QSGXMceH7gpk/8SlZIEletiL4L33kpl9zpAbr3w92iSM1Epq1nz3SBOEhwoeLihmqtXGzMCewe5IGSN3rD6OZuWf2FA2\u002BqRb1FhqcstPH\u002BCntQRmNw1kLhKcIr1Zv9vU9mBkflWYb/BxqvhoNE8i\u002BTlCj/c6aG\u002BYe\u002Bp9WpgnAlR8lXyrKqGKzwUUNEwU\u002B/mDuWlD1u/k2o3wjAJrWtUYSmij658St46X98Cx5jPjg0AwueFuoytkV7quul6fH3RwO\u002BojcNAasQGa7B7vcvSaDQiCeuEzqac9f5PkZD1v\u002BNiMQepJgBKv1gjf07cMdSSGFG0WHKRTfFIC5jF8dg0EKvNGYvEKEE02EqTYU9Xv8MpvHk\u002BQGdw0OMWYBtnhM0=" + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-4bba37d0-e906-5369-0710-d1b771317b95?restype=share", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-c4b45f0faf6652479f971b11fb87d097-2a1600ef12b95a43-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "3ab07615-5757-6b39-e2f3-794055fedd40", + "x-ms-date": "Tue, 18 Aug 2020 15:13:01 GMT", + "x-ms-delete-snapshots": "include", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:13:00 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "3ab07615-5757-6b39-e2f3-794055fedd40", + "x-ms-request-id": "6d9156b4-f01a-0015-6072-75c893000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "1446413368", + "Storage_TestConfigDefault": "ProductionTenant\nseandevtest\nU2FuaXRpemVk\nhttps://seandevtest.blob.core.windows.net\nhttps://seandevtest.file.core.windows.net\nhttps://seandevtest.queue.core.windows.net\nhttps://seandevtest.table.core.windows.net\n\n\n\n\nhttps://seandevtest-secondary.blob.core.windows.net\nhttps://seandevtest-secondary.file.core.windows.net\nhttps://seandevtest-secondary.queue.core.windows.net\nhttps://seandevtest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seandevtest.blob.core.windows.net/;QueueEndpoint=https://seandevtest.queue.core.windows.net/;FileEndpoint=https://seandevtest.file.core.windows.net/;BlobSecondaryEndpoint=https://seandevtest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seandevtest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seandevtest-secondary.file.core.windows.net/;AccountName=seandevtest;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPositionAsync.json b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPositionAsync.json new file mode 100644 index 0000000000000..947fc11ef972a --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPositionAsync.json @@ -0,0 +1,246 @@ +{ + "Entries": [ + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-0d8796a3-cc61-6def-0895-76466e4ab698?restype=share", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-716710f2c97ebf4eb03f8a5671e82655-304ea59f1553ec49-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "87339f1f-2fa9-1e60-8f3e-c683c2ca8af3", + "x-ms-date": "Tue, 18 Aug 2020 15:13:02 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:13:01 GMT", + "ETag": "\u00220x8D84389336D3CD4\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:13:02 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "87339f1f-2fa9-1e60-8f3e-c683c2ca8af3", + "x-ms-request-id": "f453d3b5-901a-002c-1e72-758837000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-0d8796a3-cc61-6def-0895-76466e4ab698/test-directory-b7da6570-8881-e79a-ea67-ca77d7b6c112?restype=directory", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-539e775bd2321f4794334a108b4ea0c9-9823c427b247384a-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "46c8015f-b61b-9658-054c-9d4165e946d9", + "x-ms-date": "Tue, 18 Aug 2020 15:13:03 GMT", + "x-ms-file-attributes": "None", + "x-ms-file-creation-time": "Now", + "x-ms-file-last-write-time": "Now", + "x-ms-file-permission": "Inherit", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:13:01 GMT", + "ETag": "\u00220x8D84389337E4E51\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:13:02 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "46c8015f-b61b-9658-054c-9d4165e946d9", + "x-ms-file-attributes": "Directory", + "x-ms-file-change-time": "2020-08-18T15:13:02.6421329Z", + "x-ms-file-creation-time": "2020-08-18T15:13:02.6421329Z", + "x-ms-file-id": "13835128424026341376", + "x-ms-file-last-write-time": "2020-08-18T15:13:02.6421329Z", + "x-ms-file-parent-id": "0", + "x-ms-file-permission-key": "5337567907660077720*2506815767522118929", + "x-ms-request-id": "f453d3b8-901a-002c-1f72-758837000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-0d8796a3-cc61-6def-0895-76466e4ab698/test-directory-b7da6570-8881-e79a-ea67-ca77d7b6c112/test-file-265bb47c-bba3-41dc-7615-8176f566f2c1", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-b0c58da09075d848a03ba834130090dd-1413f1b5ede2a149-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "41b6bac4-38cc-a3d5-2486-cf0634e1a19e", + "x-ms-content-length": "512", + "x-ms-date": "Tue, 18 Aug 2020 15:13:03 GMT", + "x-ms-file-attributes": "None", + "x-ms-file-creation-time": "Now", + "x-ms-file-last-write-time": "Now", + "x-ms-file-permission": "Inherit", + "x-ms-return-client-request-id": "true", + "x-ms-type": "file", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:13:01 GMT", + "ETag": "\u00220x8D843893389C221\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:13:02 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "41b6bac4-38cc-a3d5-2486-cf0634e1a19e", + "x-ms-file-attributes": "Archive", + "x-ms-file-change-time": "2020-08-18T15:13:02.7171873Z", + "x-ms-file-creation-time": "2020-08-18T15:13:02.7171873Z", + "x-ms-file-id": "11529285414812647424", + "x-ms-file-last-write-time": "2020-08-18T15:13:02.7171873Z", + "x-ms-file-parent-id": "13835128424026341376", + "x-ms-file-permission-key": "9973529139831694751*2506815767522118929", + "x-ms-request-id": "f453d3ba-901a-002c-2072-758837000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-0d8796a3-cc61-6def-0895-76466e4ab698/test-directory-b7da6570-8881-e79a-ea67-ca77d7b6c112/test-file-265bb47c-bba3-41dc-7615-8176f566f2c1?comp=range", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-fd2af9cada34dc408dac5219427bf2f6-b8b59b003b267640-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "a22b5879-9555-93f2-77ed-4cfe965798c3", + "x-ms-date": "Tue, 18 Aug 2020 15:13:03 GMT", + "x-ms-range": "bytes=0-511", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12", + "x-ms-write": "update" + }, + "RequestBody": "9rIRTsIklHLFWI85zJF//GKp2ic5DqlMFBkyhuZqkf2XjDU\u002BNMJn/90m1gCv8FS7G9TxbZ0/OecJxTmp8g6MWsaRokBcQMifQtpJEjipnSPFd2sReCNfV1JNNW6Ivg3Pmns5HU4UX9sMUSvD9ievXygV5HqjeuKjMkrtDgpZFoTMeni8b3/VsRiPBSb4nGErntVGc9mSLB\u002BYluoEJ1DQsjqn9nyu8u\u002BoQDNiE3W7q5bpwXA0E6OqOk1YI9mV0YrHv1PsUaXkfKvmnTOmLxiq3etUGmXgm5\u002BX/LwuVs4WE2\u002Bom1Miz1rwBETFTnVwAwo1rUbuQbYk5ySzVVTptibc0IrD/ZTFiA6RYxUhG0wqJviy\u002BaiIJ9K4hLQvbnoFB04e6H7qrAV1byU3Xd6hA8vYiS5bN719U6i4C3nglhqUi1vGAjLNP3nzPImDUMn0FoHoVuRLqdCRoJTVMaGMldkLo9KC2gCZCkm0aPoz\u002BgPfxPT49z81SeGKNWKd9w3YZ6avd633cTyATkyalkHVXaWR9m2sk56a1Vrw96Se\u002BxM73AFUhIJW51O4eKjzmrKftNi8DACgLNMIFKJSBnmX4lI5XrpAgdgjOw8a9Bv1pzunUELM4e8Sm68tTG/gA\u002BDZIJZVujv4XzP/mdDxhji3Em1nq7U2ywBiJsMKEjVpQjguQNM=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Content-MD5": "NPTBvAWZRSSdAI7UTjrDzg==", + "Date": "Tue, 18 Aug 2020 15:13:01 GMT", + "ETag": "\u00220x8D84389339695B7\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:13:02 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "a22b5879-9555-93f2-77ed-4cfe965798c3", + "x-ms-request-id": "f453d3bb-901a-002c-2172-758837000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-0d8796a3-cc61-6def-0895-76466e4ab698/test-directory-b7da6570-8881-e79a-ea67-ca77d7b6c112/test-file-265bb47c-bba3-41dc-7615-8176f566f2c1", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-715a451472509c4f8365cd624e356b4d-ee7c193e0360c643-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "e0c967fb-9e03-f07e-ac5a-87c1a41136f0", + "x-ms-date": "Tue, 18 Aug 2020 15:13:03 GMT", + "x-ms-range": "bytes=0-", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 206, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Access-Control-Allow-Origin": "*", + "Content-Length": "512", + "Content-Range": "bytes 0-511/512", + "Content-Type": "application/octet-stream", + "Date": "Tue, 18 Aug 2020 15:13:01 GMT", + "ETag": "\u00220x8D84389339695B7\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:13:02 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "e0c967fb-9e03-f07e-ac5a-87c1a41136f0", + "x-ms-file-attributes": "Archive", + "x-ms-file-change-time": "2020-08-18T15:13:02.7171873Z", + "x-ms-file-creation-time": "2020-08-18T15:13:02.7171873Z", + "x-ms-file-id": "11529285414812647424", + "x-ms-file-last-write-time": "2020-08-18T15:13:02.7171873Z", + "x-ms-file-parent-id": "13835128424026341376", + "x-ms-file-permission-key": "9973529139831694751*2506815767522118929", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "f453d3bc-901a-002c-2272-758837000000", + "x-ms-server-encrypted": "true", + "x-ms-type": "File", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": "9rIRTsIklHLFWI85zJF//GKp2ic5DqlMFBkyhuZqkf2XjDU\u002BNMJn/90m1gCv8FS7G9TxbZ0/OecJxTmp8g6MWsaRokBcQMifQtpJEjipnSPFd2sReCNfV1JNNW6Ivg3Pmns5HU4UX9sMUSvD9ievXygV5HqjeuKjMkrtDgpZFoTMeni8b3/VsRiPBSb4nGErntVGc9mSLB\u002BYluoEJ1DQsjqn9nyu8u\u002BoQDNiE3W7q5bpwXA0E6OqOk1YI9mV0YrHv1PsUaXkfKvmnTOmLxiq3etUGmXgm5\u002BX/LwuVs4WE2\u002Bom1Miz1rwBETFTnVwAwo1rUbuQbYk5ySzVVTptibc0IrD/ZTFiA6RYxUhG0wqJviy\u002BaiIJ9K4hLQvbnoFB04e6H7qrAV1byU3Xd6hA8vYiS5bN719U6i4C3nglhqUi1vGAjLNP3nzPImDUMn0FoHoVuRLqdCRoJTVMaGMldkLo9KC2gCZCkm0aPoz\u002BgPfxPT49z81SeGKNWKd9w3YZ6avd633cTyATkyalkHVXaWR9m2sk56a1Vrw96Se\u002BxM73AFUhIJW51O4eKjzmrKftNi8DACgLNMIFKJSBnmX4lI5XrpAgdgjOw8a9Bv1pzunUELM4e8Sm68tTG/gA\u002BDZIJZVujv4XzP/mdDxhji3Em1nq7U2ywBiJsMKEjVpQjguQNM=" + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-0d8796a3-cc61-6def-0895-76466e4ab698?restype=share", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-acc836a774b5974cb044ee3629198585-25645bfa3934d245-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "2e02b05b-b88d-a7bf-e541-c626e0391f15", + "x-ms-date": "Tue, 18 Aug 2020 15:13:03 GMT", + "x-ms-delete-snapshots": "include", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:13:02 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "2e02b05b-b88d-a7bf-e541-c626e0391f15", + "x-ms-request-id": "f453d3bf-901a-002c-2472-758837000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "349183673", + "Storage_TestConfigDefault": "ProductionTenant\nseandevtest\nU2FuaXRpemVk\nhttps://seandevtest.blob.core.windows.net\nhttps://seandevtest.file.core.windows.net\nhttps://seandevtest.queue.core.windows.net\nhttps://seandevtest.table.core.windows.net\n\n\n\n\nhttps://seandevtest-secondary.blob.core.windows.net\nhttps://seandevtest-secondary.file.core.windows.net\nhttps://seandevtest-secondary.queue.core.windows.net\nhttps://seandevtest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seandevtest.blob.core.windows.net/;QueueEndpoint=https://seandevtest.queue.core.windows.net/;FileEndpoint=https://seandevtest.file.core.windows.net/;BlobSecondaryEndpoint=https://seandevtest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seandevtest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seandevtest-secondary.file.core.windows.net/;AccountName=seandevtest;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocks.json b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocks.json new file mode 100644 index 0000000000000..af886f8f4b51d --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocks.json @@ -0,0 +1,353 @@ +{ + "Entries": [ + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-d948e6c7-9210-035d-55a3-030789a4200d?restype=share", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-8158ec7058b98843bccdce91630e250e-34894e5b9fab8b49-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "6b3fa2d9-407e-7047-a959-8b5b20268adf", + "x-ms-date": "Tue, 18 Aug 2020 15:13:01 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:13:00 GMT", + "ETag": "\u00220x8D84389327C3062\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:13:00 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "6b3fa2d9-407e-7047-a959-8b5b20268adf", + "x-ms-request-id": "80ea4917-a01a-006b-2072-75575c000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-d948e6c7-9210-035d-55a3-030789a4200d/test-directory-bcf13135-4713-3ba2-172a-564135833803?restype=directory", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-fb46d0a3afa9ff45ab0406b93f6fcbb5-aab013b28a20274c-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "98a47d45-7960-9138-ff03-5453ea063a25", + "x-ms-date": "Tue, 18 Aug 2020 15:13:01 GMT", + "x-ms-file-attributes": "None", + "x-ms-file-creation-time": "Now", + "x-ms-file-last-write-time": "Now", + "x-ms-file-permission": "Inherit", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:13:00 GMT", + "ETag": "\u00220x8D8438932893A12\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:13:01 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "98a47d45-7960-9138-ff03-5453ea063a25", + "x-ms-file-attributes": "Directory", + "x-ms-file-change-time": "2020-08-18T15:13:01.0359826Z", + "x-ms-file-creation-time": "2020-08-18T15:13:01.0359826Z", + "x-ms-file-id": "13835128424026341376", + "x-ms-file-last-write-time": "2020-08-18T15:13:01.0359826Z", + "x-ms-file-parent-id": "0", + "x-ms-file-permission-key": "5337567907660077720*2506815767522118929", + "x-ms-request-id": "80ea491a-a01a-006b-2172-75575c000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-d948e6c7-9210-035d-55a3-030789a4200d/test-directory-bcf13135-4713-3ba2-172a-564135833803/test-file-68ee8820-a3f7-8079-a25a-81a6db7a3ba3", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-344cc34cd4918042af87975cfc2e66dc-50d0492cdfa82f4e-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "77074632-9485-a165-0324-f506f792b684", + "x-ms-content-length": "1748", + "x-ms-date": "Tue, 18 Aug 2020 15:13:01 GMT", + "x-ms-file-attributes": "None", + "x-ms-file-creation-time": "Now", + "x-ms-file-last-write-time": "Now", + "x-ms-file-permission": "Inherit", + "x-ms-return-client-request-id": "true", + "x-ms-type": "file", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:13:01 GMT", + "ETag": "\u00220x8D8438932954A36\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:13:01 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "77074632-9485-a165-0324-f506f792b684", + "x-ms-file-attributes": "Archive", + "x-ms-file-change-time": "2020-08-18T15:13:01.1150390Z", + "x-ms-file-creation-time": "2020-08-18T15:13:01.1150390Z", + "x-ms-file-id": "11529285414812647424", + "x-ms-file-last-write-time": "2020-08-18T15:13:01.1150390Z", + "x-ms-file-parent-id": "13835128424026341376", + "x-ms-file-permission-key": "9973529139831694751*2506815767522118929", + "x-ms-request-id": "80ea491b-a01a-006b-2272-75575c000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-d948e6c7-9210-035d-55a3-030789a4200d/test-directory-bcf13135-4713-3ba2-172a-564135833803/test-file-68ee8820-a3f7-8079-a25a-81a6db7a3ba3?comp=range", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "d2933c4d-d734-4232-d737-c6a319a522f8", + "x-ms-date": "Tue, 18 Aug 2020 15:13:01 GMT", + "x-ms-range": "bytes=0-511", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12", + "x-ms-write": "update" + }, + "RequestBody": "rmfzyt1p3MQN6WMO0cYUBkk0bdUFC2fzjfl8QYorKrjoI4brDavyLF3y9cONhaC7UZ4VVKgG7qP//zzj7Zo54b\u002BrJq1AKPieQUB4EhajZghYwfDrFtUP4TXj6w1uDj/CuRME4l7zeyimdxJnjtuMXJkziyyqTcvpm0V3XTzrLzMBtVkCnoOqZEXHRZ7Dp1JZVo9zOoISF2tIG0YZex7sukffZdiCir0ViSbm4wcsJvPyHgatd/Sw7p7tuoM9kOkn24tX40J618vSXrBcLDNjHPRTJ10XPkJTL3Y6lNA52Pk9vgh81UKxd0Y72xlDVMJqiZ6P6mmLEJxIA7TLP0L7mIW3Hm4r50axoa8W22MpD9q00Asxqu6Psq1sNNGO5jgEP0KTizVUPqJX3Ui5dDQ4HvTZFm83ye2XJ2zAv7J1I7t3EZwglYOlYJFo2s2l1j15MxXdtM/IzXVU/GPJlH/w4rmNQmOXGIhwNLbez\u002B8g8VEvRoudmG7sr0Qny5kf3MsRd/gUGJPa4RuMbIAY6v6FNAoSmU3zU0pKoJMfcEzvUVfqzFf3DNm\u002BVWVwECzu08RFoZePDUJ\u002BHiSuyXcAunDPnRooLR2njigxU0Tog0IdXMzO2c\u002B0X0QVbK4ySUJhvZr0oXIRxaWnnRNuXrn\u002BlpvhkG2rMuGhGj7WE8FvdUTmz5Y=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Content-MD5": "vZXapShMgzG5d\u002BP/I/xPmw==", + "Date": "Tue, 18 Aug 2020 15:13:01 GMT", + "ETag": "\u00220x8D8438932A1816F\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:13:01 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "d2933c4d-d734-4232-d737-c6a319a522f8", + "x-ms-request-id": "80ea491d-a01a-006b-2372-75575c000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-d948e6c7-9210-035d-55a3-030789a4200d/test-directory-bcf13135-4713-3ba2-172a-564135833803/test-file-68ee8820-a3f7-8079-a25a-81a6db7a3ba3?comp=range", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "726f8cf1-3c83-ec60-55e9-8af4d5a75de6", + "x-ms-date": "Tue, 18 Aug 2020 15:13:01 GMT", + "x-ms-range": "bytes=512-1023", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12", + "x-ms-write": "update" + }, + "RequestBody": "qfPh0AyWJic8u0UBihfWElC51LaLuVOHNDuy5DcozoiOIlSiuRGD1oQLpOXUPUv861wkixEZC/CgWpzQ5ELvE\u002B29cmfCM1k/Nf0yfxRus/fvtfjaBEN3dBdjAl91s/JBG5H4F8rjObcD5FUT54vcMaal4S5JFQ\u002BpRf1QXzH5yoIL8GSCdpssDHxB1h/tZI2Lh9C4z9HE9wWCTtHNk9mGCRrTB/YnWbsLeNSxCD7vu\u002BBwxNhgQPqwR/leACfJX3miuswEGlyWZC0UrVb9Eu7GkpLxXc4BJckgI8D9yFiUQRlbD05x66GE2WCqS5OjszUKl26U2AGqoZQD5PebmZzVgGw9oQKgVafxbINuV9k1fG\u002BL8zDq/2gYsW65bQap6EDE1csnZhIyaULHo2t\u002BPEm6zmiHD6Zr64EDJe\u002BU5\u002BegR4RDqYEODhZdWYntIlz8mXQk/p\u002BeItiaWOpKI0EinYJbJlvnOpLHrL9RKbYcfcgkB4t7cOhHAiWrqVGXxOvVO7sGkvwBFF/hXFLgTPgifdshJRu2pi2aFCM1PJBBMOfUfO76FevMI/IrmROVZ7YsiSt2dp7PHpSNbH7Yy9jOoCxqC88KJ2jvVQEpig0aBKxtCLNky7lJBF1ZbKlt81gZXPnnKlvmImHDhiCdpZSHc2fRa8IladRyIQZxsLq/gmGpDy4=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Content-MD5": "gXKlU8of0gRiI2mHBRhssg==", + "Date": "Tue, 18 Aug 2020 15:13:01 GMT", + "ETag": "\u00220x8D8438932AC31C5\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:13:01 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "726f8cf1-3c83-ec60-55e9-8af4d5a75de6", + "x-ms-request-id": "80ea491e-a01a-006b-2472-75575c000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-d948e6c7-9210-035d-55a3-030789a4200d/test-directory-bcf13135-4713-3ba2-172a-564135833803/test-file-68ee8820-a3f7-8079-a25a-81a6db7a3ba3?comp=range", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "8db2432b-b035-1e75-976b-65e74141375b", + "x-ms-date": "Tue, 18 Aug 2020 15:13:01 GMT", + "x-ms-range": "bytes=1024-1535", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12", + "x-ms-write": "update" + }, + "RequestBody": "EzLZUYfmUaFFmKxfydH4QZuIlfTyJHQJVHRxpwQDv/OVZnNBjYDk3NTIj9l1p6jewX3n2RQbO\u002B\u002B\u002B0PwSdKmcQdm4yWNet7MbpLggKZSak6zMk\u002BWHHOXfeiqEgr2D0WgqLE4AvN5EgAnJyzRb\u002BhFaIzxPRuDDFSTz2U442jT2mNJQ9v1GmtfOhxLcvVGxhH8ZKV\u002BAM4uHZhcpDOOQDKbU0zJhCgQUE4llgb7O51fTQlXOH7DVdmRHyI/lHY3zPntrB\u002BoeT3l6BBbVGrHMuX6/VcqOwez2/1zOGkF1L/b8ckNDYuBttfPbUxqa/1uzew8RJcjDZHyOdQeNUDQ3BdUf2ahuiFadUqDWsm3SXP8BG58yYwkuOQ3GtezZ32W\u002BpE1FeiayRPK5c9Mn7LIOvBkHjDWVBaLM8aCbp9JpxHI6GA4fjOLZTtasefA2Bkxbt/nT0VMwKZ\u002BreYiFFp0fT65g7dSj7y83Lj1e6YyxletTQO/ZlvMfCu5vcxNZVDc5jClB1hl4t8jKm6MW0T8T\u002BeOcMtatRri7QOLlNHsb3dkFJVxicL/S2ogmD/pQCTmuXHowvSJhi0ZxhZU2k4NNr77JEKvjsIgjyVdNhje\u002BazeoNtcB6h\u002B3pJoW8esqm0cF2V88hviNy6vxDPPKEwQPshldjl2rTMSeEWwRzb\u002Bd\u002BS0QSK0=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Content-MD5": "tje1K3E/GhMGrxPEHZBaNQ==", + "Date": "Tue, 18 Aug 2020 15:13:01 GMT", + "ETag": "\u00220x8D8438932B77E7C\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:13:01 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "8db2432b-b035-1e75-976b-65e74141375b", + "x-ms-request-id": "80ea491f-a01a-006b-2572-75575c000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-d948e6c7-9210-035d-55a3-030789a4200d/test-directory-bcf13135-4713-3ba2-172a-564135833803/test-file-68ee8820-a3f7-8079-a25a-81a6db7a3ba3?comp=range", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "212", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "91c9b6e4-d0f4-f6b0-4084-bd157a283fc4", + "x-ms-date": "Tue, 18 Aug 2020 15:13:01 GMT", + "x-ms-range": "bytes=1536-1747", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12", + "x-ms-write": "update" + }, + "RequestBody": "14HkPxtqLA/dK\u002B2QlQY\u002B0cwN6VmNm511jHz\u002B7FMTxrrLVzcxNR5y8n885nIj23vGgcwsICbuIDvkb7KfbEC8ymUzxD7PDZyumvfZUbQrUbAAN2qH5qaT3Df7TcZr04U/fxsM8Bc893QwfYUuFM6HuB0BnjXVNeS/n\u002BcH08DWQsZxmtGZHmCZw0D2V2ggZMdodJSoaTVQako3TVEvNSOzWTq\u002BvXr97Zq9aNv13t17njofn14rLdmRIS\u002BGYdEPao4cQ/0tYqdNaob56wFZW4xsvK4WD5U=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Content-MD5": "b0CSy/rjF7tobFPGgeTuNg==", + "Date": "Tue, 18 Aug 2020 15:13:01 GMT", + "ETag": "\u00220x8D8438932C1927A\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:13:01 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "91c9b6e4-d0f4-f6b0-4084-bd157a283fc4", + "x-ms-request-id": "80ea4920-a01a-006b-2672-75575c000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-d948e6c7-9210-035d-55a3-030789a4200d/test-directory-bcf13135-4713-3ba2-172a-564135833803/test-file-68ee8820-a3f7-8079-a25a-81a6db7a3ba3", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-378706b4a0776a42a97a09ee112dd310-dced3cf65a4c674a-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "8b02115b-a578-c566-6392-48dcf9ed9654", + "x-ms-date": "Tue, 18 Aug 2020 15:13:01 GMT", + "x-ms-range": "bytes=0-", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 206, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Access-Control-Allow-Origin": "*", + "Content-Length": "1748", + "Content-Range": "bytes 0-1747/1748", + "Content-Type": "application/octet-stream", + "Date": "Tue, 18 Aug 2020 15:13:01 GMT", + "ETag": "\u00220x8D8438932C1927A\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:13:01 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "8b02115b-a578-c566-6392-48dcf9ed9654", + "x-ms-file-attributes": "Archive", + "x-ms-file-change-time": "2020-08-18T15:13:01.1150390Z", + "x-ms-file-creation-time": "2020-08-18T15:13:01.1150390Z", + "x-ms-file-id": "11529285414812647424", + "x-ms-file-last-write-time": "2020-08-18T15:13:01.1150390Z", + "x-ms-file-parent-id": "13835128424026341376", + "x-ms-file-permission-key": "9973529139831694751*2506815767522118929", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "80ea4921-a01a-006b-2772-75575c000000", + "x-ms-server-encrypted": "true", + "x-ms-type": "File", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": "rmfzyt1p3MQN6WMO0cYUBkk0bdUFC2fzjfl8QYorKrjoI4brDavyLF3y9cONhaC7UZ4VVKgG7qP//zzj7Zo54b\u002BrJq1AKPieQUB4EhajZghYwfDrFtUP4TXj6w1uDj/CuRME4l7zeyimdxJnjtuMXJkziyyqTcvpm0V3XTzrLzMBtVkCnoOqZEXHRZ7Dp1JZVo9zOoISF2tIG0YZex7sukffZdiCir0ViSbm4wcsJvPyHgatd/Sw7p7tuoM9kOkn24tX40J618vSXrBcLDNjHPRTJ10XPkJTL3Y6lNA52Pk9vgh81UKxd0Y72xlDVMJqiZ6P6mmLEJxIA7TLP0L7mIW3Hm4r50axoa8W22MpD9q00Asxqu6Psq1sNNGO5jgEP0KTizVUPqJX3Ui5dDQ4HvTZFm83ye2XJ2zAv7J1I7t3EZwglYOlYJFo2s2l1j15MxXdtM/IzXVU/GPJlH/w4rmNQmOXGIhwNLbez\u002B8g8VEvRoudmG7sr0Qny5kf3MsRd/gUGJPa4RuMbIAY6v6FNAoSmU3zU0pKoJMfcEzvUVfqzFf3DNm\u002BVWVwECzu08RFoZePDUJ\u002BHiSuyXcAunDPnRooLR2njigxU0Tog0IdXMzO2c\u002B0X0QVbK4ySUJhvZr0oXIRxaWnnRNuXrn\u002BlpvhkG2rMuGhGj7WE8FvdUTmz5ap8\u002BHQDJYmJzy7RQGKF9YSULnUtou5U4c0O7LkNyjOiI4iVKK5EYPWhAuk5dQ9S/zrXCSLERkL8KBanNDkQu8T7b1yZ8IzWT81/TJ/FG6z9\u002B\u002B1\u002BNoEQ3d0F2MCX3Wz8kEbkfgXyuM5twPkVRPni9wxpqXhLkkVD6lF/VBfMfnKggvwZIJ2mywMfEHWH\u002B1kjYuH0LjP0cT3BYJO0c2T2YYJGtMH9idZuwt41LEIPu\u002B74HDE2GBA\u002BrBH\u002BV4AJ8lfeaK6zAQaXJZkLRStVv0S7saSkvFdzgElySAjwP3IWJRBGVsPTnHroYTZYKpLk6OzNQqXbpTYAaqhlAPk95uZnNWAbD2hAqBVp/Fsg25X2TV8b4vzMOr/aBixbrltBqnoQMTVyydmEjJpQseja348SbrOaIcPpmvrgQMl75Tn56BHhEOpgQ4OFl1Zie0iXPyZdCT\u002Bn54i2JpY6kojQSKdglsmW\u002Bc6ksesv1Epthx9yCQHi3tw6EcCJaupUZfE69U7uwaS/AEUX\u002BFcUuBM\u002BCJ92yElG7amLZoUIzU8kEEw59R87voV68wj8iuZE5VntiyJK3Z2ns8elI1sftjL2M6gLGoLzwonaO9VASmKDRoErG0Is2TLuUkEXVlsqW3zWBlc\u002BecqW\u002BYiYcOGIJ2llIdzZ9FrwiVp1HIhBnGwur\u002BCYakPLhMy2VGH5lGhRZisX8nR\u002BEGbiJX08iR0CVR0cacEA7/zlWZzQY2A5NzUyI/Zdaeo3sF959kUGzvvvtD8EnSpnEHZuMljXrezG6S4ICmUmpOszJPlhxzl33oqhIK9g9FoKixOALzeRIAJycs0W/oRWiM8T0bgwxUk89lOONo09pjSUPb9RprXzocS3L1RsYR/GSlfgDOLh2YXKQzjkAym1NMyYQoEFBOJZYG\u002BzudX00JVzh\u002Bw1XZkR8iP5R2N8z57awfqHk95egQW1RqxzLl\u002Bv1XKjsHs9v9czhpBdS/2/HJDQ2LgbbXz21Mamv9bs3sPESXIw2R8jnUHjVA0NwXVH9mobohWnVKg1rJt0lz/ARufMmMJLjkNxrXs2d9lvqRNRXomskTyuXPTJ\u002ByyDrwZB4w1lQWizPGgm6fSacRyOhgOH4zi2U7WrHnwNgZMW7f509FTMCmfq3mIhRadH0\u002BuYO3Uo\u002B8vNy49XumMsZXrU0Dv2ZbzHwrub3MTWVQ3OYwpQdYZeLfIypujFtE/E/njnDLWrUa4u0Di5TR7G93ZBSVcYnC/0tqIJg/6UAk5rlx6ML0iYYtGcYWVNpODTa\u002B\u002ByRCr47CII8lXTYY3vms3qDbXAeoft6SaFvHrKptHBdlfPIb4jcur8QzzyhMED7IZXY5dq0zEnhFsEc2/nfktEEit14HkPxtqLA/dK\u002B2QlQY\u002B0cwN6VmNm511jHz\u002B7FMTxrrLVzcxNR5y8n885nIj23vGgcwsICbuIDvkb7KfbEC8ymUzxD7PDZyumvfZUbQrUbAAN2qH5qaT3Df7TcZr04U/fxsM8Bc893QwfYUuFM6HuB0BnjXVNeS/n\u002BcH08DWQsZxmtGZHmCZw0D2V2ggZMdodJSoaTVQako3TVEvNSOzWTq\u002BvXr97Zq9aNv13t17njofn14rLdmRIS\u002BGYdEPao4cQ/0tYqdNaob56wFZW4xsvK4WD5U=" + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-d948e6c7-9210-035d-55a3-030789a4200d?restype=share", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-157c5258e45fd940ab6efe2103fab7ad-d4cd0ca21ee68644-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "68b946d3-b425-a94c-0de6-65e634977a53", + "x-ms-date": "Tue, 18 Aug 2020 15:13:02 GMT", + "x-ms-delete-snapshots": "include", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:13:01 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "68b946d3-b425-a94c-0de6-65e634977a53", + "x-ms-request-id": "80ea4922-a01a-006b-2872-75575c000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "1051005821", + "Storage_TestConfigDefault": "ProductionTenant\nseandevtest\nU2FuaXRpemVk\nhttps://seandevtest.blob.core.windows.net\nhttps://seandevtest.file.core.windows.net\nhttps://seandevtest.queue.core.windows.net\nhttps://seandevtest.table.core.windows.net\n\n\n\n\nhttps://seandevtest-secondary.blob.core.windows.net\nhttps://seandevtest-secondary.file.core.windows.net\nhttps://seandevtest-secondary.queue.core.windows.net\nhttps://seandevtest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seandevtest.blob.core.windows.net/;QueueEndpoint=https://seandevtest.queue.core.windows.net/;FileEndpoint=https://seandevtest.file.core.windows.net/;BlobSecondaryEndpoint=https://seandevtest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seandevtest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seandevtest-secondary.file.core.windows.net/;AccountName=seandevtest;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocksAsync.json b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocksAsync.json new file mode 100644 index 0000000000000..8794e0e529589 --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadAsync_NonZeroStreamPositionMultipleBlocksAsync.json @@ -0,0 +1,353 @@ +{ + "Entries": [ + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-46610169-e7c9-22aa-14fc-4f2a648c7807?restype=share", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-fedfccda60cf0f42b2d70aa14bbfbe2b-b5cab0695a96584e-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "a40b5a3e-d5ce-08a1-4696-3943dfd7e6ca", + "x-ms-date": "Tue, 18 Aug 2020 15:13:03 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:13:03 GMT", + "ETag": "\u00220x8D8438933F6CCE8\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:13:03 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "a40b5a3e-d5ce-08a1-4696-3943dfd7e6ca", + "x-ms-request-id": "56bc29ce-101a-001f-1e72-75d11a000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-46610169-e7c9-22aa-14fc-4f2a648c7807/test-directory-9c6a6282-0424-53a2-771b-8c714a21d771?restype=directory", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-1e47e00509387141a966d959380b5dee-44706d0919c03249-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "e806d271-ef38-3a5c-b7b8-2cb34930be25", + "x-ms-date": "Tue, 18 Aug 2020 15:13:03 GMT", + "x-ms-file-attributes": "None", + "x-ms-file-creation-time": "Now", + "x-ms-file-last-write-time": "Now", + "x-ms-file-permission": "Inherit", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:13:03 GMT", + "ETag": "\u00220x8D843893403753E\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:13:03 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "e806d271-ef38-3a5c-b7b8-2cb34930be25", + "x-ms-file-attributes": "Directory", + "x-ms-file-change-time": "2020-08-18T15:13:03.5147582Z", + "x-ms-file-creation-time": "2020-08-18T15:13:03.5147582Z", + "x-ms-file-id": "13835128424026341376", + "x-ms-file-last-write-time": "2020-08-18T15:13:03.5147582Z", + "x-ms-file-parent-id": "0", + "x-ms-file-permission-key": "5337567907660077720*2506815767522118929", + "x-ms-request-id": "56bc29df-101a-001f-2a72-75d11a000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-46610169-e7c9-22aa-14fc-4f2a648c7807/test-directory-9c6a6282-0424-53a2-771b-8c714a21d771/test-file-11d2c8bf-dbeb-ae4a-29a3-fb32d4087630", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-822166c1483be646a74df9473494920b-f439e6f0a0fb6a48-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "14da0a34-5673-95f6-8758-be94f32a65af", + "x-ms-content-length": "1748", + "x-ms-date": "Tue, 18 Aug 2020 15:13:04 GMT", + "x-ms-file-attributes": "None", + "x-ms-file-creation-time": "Now", + "x-ms-file-last-write-time": "Now", + "x-ms-file-permission": "Inherit", + "x-ms-return-client-request-id": "true", + "x-ms-type": "file", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:13:03 GMT", + "ETag": "\u00220x8D84389340E4CB2\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:13:03 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "14da0a34-5673-95f6-8758-be94f32a65af", + "x-ms-file-attributes": "Archive", + "x-ms-file-change-time": "2020-08-18T15:13:03.5858098Z", + "x-ms-file-creation-time": "2020-08-18T15:13:03.5858098Z", + "x-ms-file-id": "11529285414812647424", + "x-ms-file-last-write-time": "2020-08-18T15:13:03.5858098Z", + "x-ms-file-parent-id": "13835128424026341376", + "x-ms-file-permission-key": "9973529139831694751*2506815767522118929", + "x-ms-request-id": "56bc29e8-101a-001f-3372-75d11a000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-46610169-e7c9-22aa-14fc-4f2a648c7807/test-directory-9c6a6282-0424-53a2-771b-8c714a21d771/test-file-11d2c8bf-dbeb-ae4a-29a3-fb32d4087630?comp=range", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "38f04c56-c662-ee7d-7e3f-2a2dc609f466", + "x-ms-date": "Tue, 18 Aug 2020 15:13:04 GMT", + "x-ms-range": "bytes=0-511", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12", + "x-ms-write": "update" + }, + "RequestBody": "BRKSemi0Er73P9dqWpxcZQ5NyvZF4uO0/lofsc48D5/1N9v5rcYu2e3qmwmC\u002BazTy6UP6DBZPCIu3XsNlGDvuy83dSPAYrhIH/EIWkfZMgSuTOUoLSdvm/q5ys9KIESN\u002BuDZSoOJEmntx8g\u002BUeHbVKt2X0h6x40Hx9ooB5fo/f\u002BsemBnAOeBJTl8O2VfMUoZ3XUk1MH8EjNS0YKpYArRBMnJktaBdFTD9ToO/osnqJaPDioixCk9sGgsFC5k18Quqzaclp50mGggYN6H7RSnKinsGVHgrkCgi\u002BFtVF8lXx1231JVixL3G3bCAWNKtsNUhOoFeL5yTvz1/Aq9BkMI\u002BwHBEQ3BUp4W9P3bHq3dVdQdGc91IOZfA5BWX48HOhUzuQZhiaW1kjFM74TAlzBOGKY1n\u002B1zk9oaYg18a/MPDrrop2Sne8wvaIaeKDFinmxgB0bo0ponvyUrRyaYOCc\u002BPODJ1\u002B/Lp53ZBjdm1WqpuMOgHGSsJjwgweg/ezSlli9eX\u002BtQmMd9lF\u002BpDstiwOq6go5j9xvDkRakqRYHjCtoNHAHCHV/WB/8I4gEAxdxvQD9hPmlQp8Tm87VrO6wdQg0QNpbW7h0OyluZtOTvo3/M\u002BwWCQcxw/HQ82ymqawwTK1/0MI8FmJHiUnQNtvLgNxA1XkCmmwBAn3oimdMzZF8PRo=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Content-MD5": "ezxLyQ644w05xpRQEuJFfw==", + "Date": "Tue, 18 Aug 2020 15:13:03 GMT", + "ETag": "\u00220x8D843893419724B\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:13:03 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "38f04c56-c662-ee7d-7e3f-2a2dc609f466", + "x-ms-request-id": "56bc29f2-101a-001f-3c72-75d11a000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-46610169-e7c9-22aa-14fc-4f2a648c7807/test-directory-9c6a6282-0424-53a2-771b-8c714a21d771/test-file-11d2c8bf-dbeb-ae4a-29a3-fb32d4087630?comp=range", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "3bcf6669-65e5-08c8-e6a6-517066c8548f", + "x-ms-date": "Tue, 18 Aug 2020 15:13:04 GMT", + "x-ms-range": "bytes=512-1023", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12", + "x-ms-write": "update" + }, + "RequestBody": "JhTuy8Icis\u002BAvWGMFgVzj2bTMy6yQX7NRVSL\u002Bvu7t1P5waVr7XUTXHjK60Og8NKE9LxnvUkPaOSVIYVukI/UxQUNk1RgB6HwwNa151U6LFSBBwY\u002BU/oK6VjA1szvpcvo9iY9k119JOwad/1yWYGOW/Qw7ImJlXELA6n8nzHUABsLzfAv/Jn3A\u002BIZI9z8mI/XMnrYvrhBX2G1MY\u002BzgYS7RXbhZoyRX15aOeimcHGVDmsaJG22/EFiyW6PessJQ4JeXd1mGjECRtIcfoXPm\u002B7vHyIkmVwXBEk0fp0eAuWTUPZmSBKULvQ5F96amX68ky5/n1qo5aklRlmUMpyU40TtiS2OaVLcW/Eu6oJ\u002BfGvLd\u002Btun2KK62tNQQG5//xYpTOarBBQLircokRpefomp8ntyLqwJUThYp7BQCdQI1v01kVO5M9aekjBkvwdIXFxJpk4yzZCp4DvuEpxju0Ci3/pdKK12ML5kk1x75JHxEEsUBqNGFcksi/EXyuF6exbvgZ8NK3PvE7WPjjo0Ljtp/MIRD3TdHMnxMJz8HiXdKlhFjCMypCUXZTMttofO\u002BJ217g4fKSuh0qTVG/qXMvVP8qOh7mHYdxjdOepB72ZCIng/BnAX/cFs47m\u002BXUhqQDI9ncQkLQo73Xb1Ae8BICM\u002BkzlCmCyFeDSidQqoWhmQsvn4RA=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Content-MD5": "XDglTHsg1Bpst1OCXVi2GQ==", + "Date": "Tue, 18 Aug 2020 15:13:03 GMT", + "ETag": "\u00220x8D8438934261ECC\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:13:03 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "3bcf6669-65e5-08c8-e6a6-517066c8548f", + "x-ms-request-id": "56bc29fc-101a-001f-4672-75d11a000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-46610169-e7c9-22aa-14fc-4f2a648c7807/test-directory-9c6a6282-0424-53a2-771b-8c714a21d771/test-file-11d2c8bf-dbeb-ae4a-29a3-fb32d4087630?comp=range", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "60c49320-b83a-8781-fa17-71f673e56b2f", + "x-ms-date": "Tue, 18 Aug 2020 15:13:04 GMT", + "x-ms-range": "bytes=1024-1535", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12", + "x-ms-write": "update" + }, + "RequestBody": "Roh41bcMo\u002BWK70iuDln/KTueoBXhlj0G4P5NDXSSPNUjb0Zx1BBSUw4vVuNBJRxHaT0HLEfLL7BLcfS5v5Zw\u002BLJzi54TjVUqTEwHsT9ZxbriBaM3iw\u002BNVz\u002BVJWIbmZR3vl4wzZp9NNvo3OD6xH5w8as617nyOW2j5TNefWjyDrK4j/LhKPggZNHITq4vk5PBJTO34cHahYXwjedmHrZz9s0tQjSLjsmzGXLnKuq\u002BdFKfnVg0Oi3w3Qpt8JsQuUYbVVjhAVFeNpZqA8dP81qaMhmVx4FdPrufPGQqHp4uo2AszNWS3XMBQGbCyjdloemv0r6BevLFvhedQcTsNBf3PGBnIieFCFWmlIYamnOEOpt6e0vfrChuZg299JuuFQxPyo3W/n7CKcpp2\u002BZrqyOjGQcpcbjMGJA4\u002BLwZxxO59395y8/lrTscuFKAdtFBArvqGtuUhaNUgrL9nQbCqWG3r\u002BNn8uBTvWvMDbhmS6G/9/UAL603JXLbJUgd6BA0WQ/wycft2hDbllxwyHjr7TYRPqYQwXmzf4pxi8yXNtVal7OpdYLa0RzkJZhQx1358DcRDKlqJJeVPEk9fE5DQ2CHFTDFQXe0N22JK5zhY7csd5uVhiks8HIbFDk4nFTOoeE3ybIsNK6/XdU74Pj6tNmSEAWyrr02WiS9qS0\u002Be5oYuoo=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Content-MD5": "9fvFYGhD\u002Bwv\u002B35hg9W1qAw==", + "Date": "Tue, 18 Aug 2020 15:13:03 GMT", + "ETag": "\u00220x8D843893431E0C7\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:13:03 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "60c49320-b83a-8781-fa17-71f673e56b2f", + "x-ms-request-id": "56bc2a04-101a-001f-4e72-75d11a000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-46610169-e7c9-22aa-14fc-4f2a648c7807/test-directory-9c6a6282-0424-53a2-771b-8c714a21d771/test-file-11d2c8bf-dbeb-ae4a-29a3-fb32d4087630?comp=range", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "212", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "d24f1b63-f304-0b55-9aac-c730f7071d10", + "x-ms-date": "Tue, 18 Aug 2020 15:13:04 GMT", + "x-ms-range": "bytes=1536-1747", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12", + "x-ms-write": "update" + }, + "RequestBody": "u6mZBQBC7NYoVPAQeSBgYKaMTxvyIwBujW6LgYDhOiMlbj8KP40QwsXXlOJqFEOIzd7VDcifl5ipKneRt2tVRxrN6gvhVSAYfIxVG44eBHkqArSiCyxahtenYBQWfgtagk3HnSk4pne9vJE8SXwJiib9ZrS3sjvtcmQ0OvULAv2B\u002B5hBVmdQ8lw85E\u002BaHj1andbuGBhXo88S2irEBGyCsrqUuk7jxzS/rXNYes3sUlQn2ZwfHenkKVfIL3w8i\u002B7vujKVBmPvdtWhLmuk/ykBJYfVnSo=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Content-MD5": "9a9Q3TZoZEUDEtMpKiBDLg==", + "Date": "Tue, 18 Aug 2020 15:13:03 GMT", + "ETag": "\u00220x8D84389343C911D\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:13:03 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "d24f1b63-f304-0b55-9aac-c730f7071d10", + "x-ms-request-id": "56bc2a06-101a-001f-5072-75d11a000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-46610169-e7c9-22aa-14fc-4f2a648c7807/test-directory-9c6a6282-0424-53a2-771b-8c714a21d771/test-file-11d2c8bf-dbeb-ae4a-29a3-fb32d4087630", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-b226275b63090d4186cd7ef5ea5c7df0-c2c9fa5ba3cc4d4a-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "57921e99-9995-132b-581b-f467941e0960", + "x-ms-date": "Tue, 18 Aug 2020 15:13:04 GMT", + "x-ms-range": "bytes=0-", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 206, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Access-Control-Allow-Origin": "*", + "Content-Length": "1748", + "Content-Range": "bytes 0-1747/1748", + "Content-Type": "application/octet-stream", + "Date": "Tue, 18 Aug 2020 15:13:03 GMT", + "ETag": "\u00220x8D84389343C911D\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:13:03 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "57921e99-9995-132b-581b-f467941e0960", + "x-ms-file-attributes": "Archive", + "x-ms-file-change-time": "2020-08-18T15:13:03.5858098Z", + "x-ms-file-creation-time": "2020-08-18T15:13:03.5858098Z", + "x-ms-file-id": "11529285414812647424", + "x-ms-file-last-write-time": "2020-08-18T15:13:03.5858098Z", + "x-ms-file-parent-id": "13835128424026341376", + "x-ms-file-permission-key": "9973529139831694751*2506815767522118929", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "56bc2a0a-101a-001f-5472-75d11a000000", + "x-ms-server-encrypted": "true", + "x-ms-type": "File", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": "BRKSemi0Er73P9dqWpxcZQ5NyvZF4uO0/lofsc48D5/1N9v5rcYu2e3qmwmC\u002BazTy6UP6DBZPCIu3XsNlGDvuy83dSPAYrhIH/EIWkfZMgSuTOUoLSdvm/q5ys9KIESN\u002BuDZSoOJEmntx8g\u002BUeHbVKt2X0h6x40Hx9ooB5fo/f\u002BsemBnAOeBJTl8O2VfMUoZ3XUk1MH8EjNS0YKpYArRBMnJktaBdFTD9ToO/osnqJaPDioixCk9sGgsFC5k18Quqzaclp50mGggYN6H7RSnKinsGVHgrkCgi\u002BFtVF8lXx1231JVixL3G3bCAWNKtsNUhOoFeL5yTvz1/Aq9BkMI\u002BwHBEQ3BUp4W9P3bHq3dVdQdGc91IOZfA5BWX48HOhUzuQZhiaW1kjFM74TAlzBOGKY1n\u002B1zk9oaYg18a/MPDrrop2Sne8wvaIaeKDFinmxgB0bo0ponvyUrRyaYOCc\u002BPODJ1\u002B/Lp53ZBjdm1WqpuMOgHGSsJjwgweg/ezSlli9eX\u002BtQmMd9lF\u002BpDstiwOq6go5j9xvDkRakqRYHjCtoNHAHCHV/WB/8I4gEAxdxvQD9hPmlQp8Tm87VrO6wdQg0QNpbW7h0OyluZtOTvo3/M\u002BwWCQcxw/HQ82ymqawwTK1/0MI8FmJHiUnQNtvLgNxA1XkCmmwBAn3oimdMzZF8PRomFO7LwhyKz4C9YYwWBXOPZtMzLrJBfs1FVIv6\u002B7u3U/nBpWvtdRNceMrrQ6Dw0oT0vGe9SQ9o5JUhhW6Qj9TFBQ2TVGAHofDA1rXnVTosVIEHBj5T\u002BgrpWMDWzO\u002Bly\u002Bj2Jj2TXX0k7Bp3/XJZgY5b9DDsiYmVcQsDqfyfMdQAGwvN8C/8mfcD4hkj3PyYj9cyeti\u002BuEFfYbUxj7OBhLtFduFmjJFfXlo56KZwcZUOaxokbbb8QWLJbo96ywlDgl5d3WYaMQJG0hx\u002Bhc\u002Bb7u8fIiSZXBcESTR\u002BnR4C5ZNQ9mZIEpQu9DkX3pqZfryTLn\u002BfWqjlqSVGWZQynJTjRO2JLY5pUtxb8S7qgn58a8t3626fYorra01BAbn//FilM5qsEFAuKtyiRGl5\u002Bianye3IurAlROFinsFAJ1AjW/TWRU7kz1p6SMGS/B0hcXEmmTjLNkKngO\u002B4SnGO7QKLf\u002Bl0orXYwvmSTXHvkkfEQSxQGo0YVySyL8RfK4Xp7Fu\u002BBnw0rc\u002B8TtY\u002BOOjQuO2n8whEPdN0cyfEwnPweJd0qWEWMIzKkJRdlMy22h874nbXuDh8pK6HSpNUb\u002Bpcy9U/yo6HuYdh3GN056kHvZkIieD8GcBf9wWzjub5dSGpAMj2dxCQtCjvddvUB7wEgIz6TOUKYLIV4NKJ1CqhaGZCy\u002BfhEEaIeNW3DKPliu9Irg5Z/yk7nqAV4ZY9BuD\u002BTQ10kjzVI29GcdQQUlMOL1bjQSUcR2k9ByxHyy\u002BwS3H0ub\u002BWcPiyc4ueE41VKkxMB7E/WcW64gWjN4sPjVc/lSViG5mUd75eMM2afTTb6Nzg\u002BsR\u002BcPGrOte58jlto\u002BUzXn1o8g6yuI/y4Sj4IGTRyE6uL5OTwSUzt\u002BHB2oWF8I3nZh62c/bNLUI0i47Jsxly5yrqvnRSn51YNDot8N0KbfCbELlGG1VY4QFRXjaWagPHT/NamjIZlceBXT67nzxkKh6eLqNgLMzVkt1zAUBmwso3ZaHpr9K\u002BgXryxb4XnUHE7DQX9zxgZyInhQhVppSGGppzhDqbentL36wobmYNvfSbrhUMT8qN1v5\u002BwinKadvma6sjoxkHKXG4zBiQOPi8GccTufd/ecvP5a07HLhSgHbRQQK76hrblIWjVIKy/Z0Gwqlht6/jZ/LgU71rzA24Zkuhv/f1AC\u002BtNyVy2yVIHegQNFkP8MnH7doQ25ZccMh46\u002B02ET6mEMF5s3\u002BKcYvMlzbVWpezqXWC2tEc5CWYUMdd\u002BfA3EQypaiSXlTxJPXxOQ0NghxUwxUF3tDdtiSuc4WO3LHeblYYpLPByGxQ5OJxUzqHhN8myLDSuv13VO\u002BD4\u002BrTZkhAFsq69NlokvaktPnuaGLqKu6mZBQBC7NYoVPAQeSBgYKaMTxvyIwBujW6LgYDhOiMlbj8KP40QwsXXlOJqFEOIzd7VDcifl5ipKneRt2tVRxrN6gvhVSAYfIxVG44eBHkqArSiCyxahtenYBQWfgtagk3HnSk4pne9vJE8SXwJiib9ZrS3sjvtcmQ0OvULAv2B\u002B5hBVmdQ8lw85E\u002BaHj1andbuGBhXo88S2irEBGyCsrqUuk7jxzS/rXNYes3sUlQn2ZwfHenkKVfIL3w8i\u002B7vujKVBmPvdtWhLmuk/ykBJYfVnSo=" + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-46610169-e7c9-22aa-14fc-4f2a648c7807?restype=share", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-6d01e7a078268746900a41af91973dc5-7ad0a72576331e41-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "d8978e4a-c574-197b-e4eb-8451beb82f26", + "x-ms-date": "Tue, 18 Aug 2020 15:13:04 GMT", + "x-ms-delete-snapshots": "include", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:13:03 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "d8978e4a-c574-197b-e4eb-8451beb82f26", + "x-ms-request-id": "56bc2a0f-101a-001f-5972-75d11a000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "957497177", + "Storage_TestConfigDefault": "ProductionTenant\nseandevtest\nU2FuaXRpemVk\nhttps://seandevtest.blob.core.windows.net\nhttps://seandevtest.file.core.windows.net\nhttps://seandevtest.queue.core.windows.net\nhttps://seandevtest.table.core.windows.net\n\n\n\n\nhttps://seandevtest-secondary.blob.core.windows.net\nhttps://seandevtest-secondary.file.core.windows.net\nhttps://seandevtest-secondary.queue.core.windows.net\nhttps://seandevtest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seandevtest.blob.core.windows.net/;QueueEndpoint=https://seandevtest.queue.core.windows.net/;FileEndpoint=https://seandevtest.file.core.windows.net/;BlobSecondaryEndpoint=https://seandevtest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seandevtest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seandevtest-secondary.file.core.windows.net/;AccountName=seandevtest;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadAsync_Stream_InvalidStreamPosition.json b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadAsync_Stream_InvalidStreamPosition.json new file mode 100644 index 0000000000000..85518b7f79411 --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadAsync_Stream_InvalidStreamPosition.json @@ -0,0 +1,161 @@ +{ + "Entries": [ + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-fb2cae7d-7dd0-405e-932d-55163f5a59f2?restype=share", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-13c844ebcc9b5d41a9cfe73afbfa2159-dd6b856bbe307043-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "90fd430f-f011-44a7-b3b3-5623a4d0c831", + "x-ms-date": "Tue, 18 Aug 2020 15:15:48 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:15:47 GMT", + "ETag": "\u00220x8D84389963B128D\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:15:48 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "90fd430f-f011-44a7-b3b3-5623a4d0c831", + "x-ms-request-id": "fd476d50-d01a-002b-5872-757eb2000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-fb2cae7d-7dd0-405e-932d-55163f5a59f2/test-directory-6ab93419-4d07-3671-7f5d-25167bc7619e?restype=directory", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-373fbd245f0bdb42a66a73f1fdecc42e-6f03d9326c0c0947-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "aa7ed0f0-133b-c1a3-d1c6-10b4cb90c9ec", + "x-ms-date": "Tue, 18 Aug 2020 15:15:48 GMT", + "x-ms-file-attributes": "None", + "x-ms-file-creation-time": "Now", + "x-ms-file-last-write-time": "Now", + "x-ms-file-permission": "Inherit", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:15:47 GMT", + "ETag": "\u00220x8D84389964F2EB8\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:15:48 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "aa7ed0f0-133b-c1a3-d1c6-10b4cb90c9ec", + "x-ms-file-attributes": "Directory", + "x-ms-file-change-time": "2020-08-18T15:15:48.4277432Z", + "x-ms-file-creation-time": "2020-08-18T15:15:48.4277432Z", + "x-ms-file-id": "13835128424026341376", + "x-ms-file-last-write-time": "2020-08-18T15:15:48.4277432Z", + "x-ms-file-parent-id": "0", + "x-ms-file-permission-key": "5337567907660077720*2506815767522118929", + "x-ms-request-id": "fd476d5f-d01a-002b-6472-757eb2000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-fb2cae7d-7dd0-405e-932d-55163f5a59f2/test-directory-6ab93419-4d07-3671-7f5d-25167bc7619e/test-file-fa73b852-cdc9-4fd4-53fc-8b0c8e894675", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-4cf8cab5b6973643b4d8c559cc22663b-edc310fb479a9e47-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "3796d232-3096-233b-fb2f-573e88973248", + "x-ms-content-length": "1024", + "x-ms-date": "Tue, 18 Aug 2020 15:15:49 GMT", + "x-ms-file-attributes": "None", + "x-ms-file-creation-time": "Now", + "x-ms-file-last-write-time": "Now", + "x-ms-file-permission": "Inherit", + "x-ms-return-client-request-id": "true", + "x-ms-type": "file", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:15:47 GMT", + "ETag": "\u00220x8D843899661F6E1\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:15:48 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "3796d232-3096-233b-fb2f-573e88973248", + "x-ms-file-attributes": "Archive", + "x-ms-file-change-time": "2020-08-18T15:15:48.5508321Z", + "x-ms-file-creation-time": "2020-08-18T15:15:48.5508321Z", + "x-ms-file-id": "11529285414812647424", + "x-ms-file-last-write-time": "2020-08-18T15:15:48.5508321Z", + "x-ms-file-parent-id": "13835128424026341376", + "x-ms-file-permission-key": "9973529139831694751*2506815767522118929", + "x-ms-request-id": "fd476d61-d01a-002b-6672-757eb2000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-fb2cae7d-7dd0-405e-932d-55163f5a59f2?restype=share", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-e331dcf1baa7a64ab9897d8809175b0d-a643397b4f747a46-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "cf11ffcf-773e-2355-af35-ccd7c9e3f2fc", + "x-ms-date": "Tue, 18 Aug 2020 15:15:49 GMT", + "x-ms-delete-snapshots": "include", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:15:47 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "cf11ffcf-773e-2355-af35-ccd7c9e3f2fc", + "x-ms-request-id": "fd476d66-d01a-002b-6b72-757eb2000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "516292577", + "Storage_TestConfigDefault": "ProductionTenant\nseandevtest\nU2FuaXRpemVk\nhttps://seandevtest.blob.core.windows.net\nhttps://seandevtest.file.core.windows.net\nhttps://seandevtest.queue.core.windows.net\nhttps://seandevtest.table.core.windows.net\n\n\n\n\nhttps://seandevtest-secondary.blob.core.windows.net\nhttps://seandevtest-secondary.file.core.windows.net\nhttps://seandevtest-secondary.queue.core.windows.net\nhttps://seandevtest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seandevtest.blob.core.windows.net/;QueueEndpoint=https://seandevtest.queue.core.windows.net/;FileEndpoint=https://seandevtest.file.core.windows.net/;BlobSecondaryEndpoint=https://seandevtest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seandevtest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seandevtest-secondary.file.core.windows.net/;AccountName=seandevtest;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadAsync_Stream_InvalidStreamPositionAsync.json b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadAsync_Stream_InvalidStreamPositionAsync.json new file mode 100644 index 0000000000000..3a7d1286cebb8 --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadAsync_Stream_InvalidStreamPositionAsync.json @@ -0,0 +1,161 @@ +{ + "Entries": [ + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-1d863457-e600-4362-36a1-3cfce6519a65?restype=share", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-c49492628b2dcb4db8ae0a2b41b39f83-22bb29eb0c83ad40-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "13465ac1-b765-7ca9-3394-71a9c2d8f610", + "x-ms-date": "Tue, 18 Aug 2020 15:15:49 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:15:48 GMT", + "ETag": "\u00220x8D8438996D55B6F\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:15:49 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "13465ac1-b765-7ca9-3394-71a9c2d8f610", + "x-ms-request-id": "ea760edd-001a-0066-1172-75b850000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-1d863457-e600-4362-36a1-3cfce6519a65/test-directory-141ae814-7016-5766-6d7c-7756a8ffa2c5?restype=directory", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-74beecc23e122543b47ce1c7c8263884-ba3c59b445ad0f40-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "b84e2eb3-5056-506e-f3ee-a6e94052d333", + "x-ms-date": "Tue, 18 Aug 2020 15:15:49 GMT", + "x-ms-file-attributes": "None", + "x-ms-file-creation-time": "Now", + "x-ms-file-last-write-time": "Now", + "x-ms-file-permission": "Inherit", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:15:48 GMT", + "ETag": "\u00220x8D8438996E32578\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:15:49 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "b84e2eb3-5056-506e-f3ee-a6e94052d333", + "x-ms-file-attributes": "Directory", + "x-ms-file-change-time": "2020-08-18T15:15:49.3974392Z", + "x-ms-file-creation-time": "2020-08-18T15:15:49.3974392Z", + "x-ms-file-id": "13835128424026341376", + "x-ms-file-last-write-time": "2020-08-18T15:15:49.3974392Z", + "x-ms-file-parent-id": "0", + "x-ms-file-permission-key": "5337567907660077720*2506815767522118929", + "x-ms-request-id": "ea760ee0-001a-0066-1272-75b850000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-1d863457-e600-4362-36a1-3cfce6519a65/test-directory-141ae814-7016-5766-6d7c-7756a8ffa2c5/test-file-0c6eacf2-6b9d-8e06-e8d3-81f18e82c950", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-f5c3b89c09ff3e48aaa857aa1f7ca420-5fd5cedf4e2a584c-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "e2f1ae51-3bae-4730-28c0-d083cf7dc270", + "x-ms-content-length": "1024", + "x-ms-date": "Tue, 18 Aug 2020 15:15:49 GMT", + "x-ms-file-attributes": "None", + "x-ms-file-creation-time": "Now", + "x-ms-file-last-write-time": "Now", + "x-ms-file-permission": "Inherit", + "x-ms-return-client-request-id": "true", + "x-ms-type": "file", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:15:48 GMT", + "ETag": "\u00220x8D8438996EF0E76\u0022", + "Last-Modified": "Tue, 18 Aug 2020 15:15:49 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "e2f1ae51-3bae-4730-28c0-d083cf7dc270", + "x-ms-file-attributes": "Archive", + "x-ms-file-change-time": "2020-08-18T15:15:49.4754934Z", + "x-ms-file-creation-time": "2020-08-18T15:15:49.4754934Z", + "x-ms-file-id": "11529285414812647424", + "x-ms-file-last-write-time": "2020-08-18T15:15:49.4754934Z", + "x-ms-file-parent-id": "13835128424026341376", + "x-ms-file-permission-key": "9973529139831694751*2506815767522118929", + "x-ms-request-id": "ea760ee1-001a-0066-1372-75b850000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seandevtest.file.core.windows.net/test-share-1d863457-e600-4362-36a1-3cfce6519a65?restype=share", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-b1b66b296c653c48beb10d0a26ee49ee-87df9d97b7166948-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200818.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "e508537e-69d2-69a7-a0e7-dfaeef4c2586", + "x-ms-date": "Tue, 18 Aug 2020 15:15:50 GMT", + "x-ms-delete-snapshots": "include", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 18 Aug 2020 15:15:48 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "e508537e-69d2-69a7-a0e7-dfaeef4c2586", + "x-ms-request-id": "ea760ee2-001a-0066-1472-75b850000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "780561337", + "Storage_TestConfigDefault": "ProductionTenant\nseandevtest\nU2FuaXRpemVk\nhttps://seandevtest.blob.core.windows.net\nhttps://seandevtest.file.core.windows.net\nhttps://seandevtest.queue.core.windows.net\nhttps://seandevtest.table.core.windows.net\n\n\n\n\nhttps://seandevtest-secondary.blob.core.windows.net\nhttps://seandevtest-secondary.file.core.windows.net\nhttps://seandevtest-secondary.queue.core.windows.net\nhttps://seandevtest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seandevtest.blob.core.windows.net/;QueueEndpoint=https://seandevtest.queue.core.windows.net/;FileEndpoint=https://seandevtest.file.core.windows.net/;BlobSecondaryEndpoint=https://seandevtest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seandevtest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seandevtest-secondary.file.core.windows.net/;AccountName=seandevtest;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file From 9585bbc3b3fac2cb7836a32a4d096b5695549180 Mon Sep 17 00:00:00 2001 From: Sean McCullough Date: Tue, 18 Aug 2020 10:43:41 -0500 Subject: [PATCH 04/10] PR comments --- sdk/storage/Azure.Storage.Blobs/src/BlobErrors.cs | 1 - .../Azure.Storage.Common/src/Shared/PartitionedUploader.cs | 1 - 2 files changed, 2 deletions(-) diff --git a/sdk/storage/Azure.Storage.Blobs/src/BlobErrors.cs b/sdk/storage/Azure.Storage.Blobs/src/BlobErrors.cs index 630e4bd378072..873958b211bd2 100644 --- a/sdk/storage/Azure.Storage.Blobs/src/BlobErrors.cs +++ b/sdk/storage/Azure.Storage.Blobs/src/BlobErrors.cs @@ -3,7 +3,6 @@ using System; using System.Globalization; -using System.IO; using Azure.Storage.Blobs.Models; namespace Azure.Storage.Blobs diff --git a/sdk/storage/Azure.Storage.Common/src/Shared/PartitionedUploader.cs b/sdk/storage/Azure.Storage.Common/src/Shared/PartitionedUploader.cs index 968c20fab0d21..13efc058ef379 100644 --- a/sdk/storage/Azure.Storage.Common/src/Shared/PartitionedUploader.cs +++ b/sdk/storage/Azure.Storage.Common/src/Shared/PartitionedUploader.cs @@ -412,7 +412,6 @@ private async Task> UploadInParallelAsync( // Calling internal method for easier mocking in PartitionedUploaderTests return await _commitPartitionedUploadInternal( partitions, - // For some reason, Upload in parallel handles offsets differently. initialPosition: 0, args, async: true, From c1185f94cd67c6cb3fda36aa3342897015d0fc77 Mon Sep 17 00:00:00 2001 From: Sean McCullough Date: Tue, 18 Aug 2020 12:53:47 -0500 Subject: [PATCH 05/10] Updated changelogs --- sdk/storage/Azure.Storage.Blobs/CHANGELOG.md | 2 +- sdk/storage/Azure.Storage.Files.DataLake/CHANGELOG.md | 2 +- sdk/storage/Azure.Storage.Files.Shares/CHANGELOG.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sdk/storage/Azure.Storage.Blobs/CHANGELOG.md b/sdk/storage/Azure.Storage.Blobs/CHANGELOG.md index 53ce5099a2591..416d6abd58948 100644 --- a/sdk/storage/Azure.Storage.Blobs/CHANGELOG.md +++ b/sdk/storage/Azure.Storage.Blobs/CHANGELOG.md @@ -1,7 +1,7 @@ # Release History ## 12.6.0-preview.1 (Unreleased) - +- Fixed bug where BlobClient.Upload(), BlockBlobClient.Upload(), AppendBlobClient.AppendBlock(), and PageBlobClient.UploadPages() would deadlock if the content stream's position was not 0. ## 12.5.0 (2020-08-13) - Includes all features from 12.5.0-preview.1 through 12.5.0-preview.6. diff --git a/sdk/storage/Azure.Storage.Files.DataLake/CHANGELOG.md b/sdk/storage/Azure.Storage.Files.DataLake/CHANGELOG.md index 344494b7ec3a4..8af8fddbf55e0 100644 --- a/sdk/storage/Azure.Storage.Files.DataLake/CHANGELOG.md +++ b/sdk/storage/Azure.Storage.Files.DataLake/CHANGELOG.md @@ -1,7 +1,7 @@ # Release History ## 12.4.0-preview.1 (Unreleased) - +- Fixed bug where DataLakeFileClient.Upload() would deadlock if the content stream's position was not 0. ## 12.3.0 (2020-08-13) - Includes all features from 12.3.0-preview.1 through 12.3.0-preview.2. diff --git a/sdk/storage/Azure.Storage.Files.Shares/CHANGELOG.md b/sdk/storage/Azure.Storage.Files.Shares/CHANGELOG.md index a1069289af848..19a1796766f35 100644 --- a/sdk/storage/Azure.Storage.Files.Shares/CHANGELOG.md +++ b/sdk/storage/Azure.Storage.Files.Shares/CHANGELOG.md @@ -1,7 +1,7 @@ # Release History ## 12.4.0-preview.1 (Unreleased) - +- Fixed bug where ShareFileClient.Upload() and .UploadRange() would deadlock if the content stream's position was not zero. ## 12.3.0 (2020-08-13) - Includes all features from 12.3.0-preview.1 through 12.3.0-preview.2. From bf5ab4b07aba22628b0a1b40f05ca2adf4d35312 Mon Sep 17 00:00:00 2001 From: Sean McCullough Date: Tue, 18 Aug 2020 13:03:33 -0500 Subject: [PATCH 06/10] Fixed typo --- sdk/storage/Azure.Storage.Blobs/src/BlockBlobClient.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/storage/Azure.Storage.Blobs/src/BlockBlobClient.cs b/sdk/storage/Azure.Storage.Blobs/src/BlockBlobClient.cs index d70c94df2c7d6..0d0e4f9700404 100644 --- a/sdk/storage/Azure.Storage.Blobs/src/BlockBlobClient.cs +++ b/sdk/storage/Azure.Storage.Blobs/src/BlockBlobClient.cs @@ -2192,9 +2192,9 @@ internal static PartitionedUploader.Behavior progressHandler, async, cancellationToken).ConfigureAwait(false), - CommitPartitionedUpload = async (partitions, initalialPosition, args, async, cancellationToken) + CommitPartitionedUpload = async (partitions, initialPosition, args, async, cancellationToken) => await client.CommitBlockListInternal( - partitions.Select(partition => StorageExtensions.GenerateBlockId(partition.Offset - initalialPosition)), + partitions.Select(partition => StorageExtensions.GenerateBlockId(partition.Offset - initialPosition)), args.HttpHeaders, args.Metadata, args.Tags, From 5b68bd34f1b035732c8077adc21ba57247dd72a1 Mon Sep 17 00:00:00 2001 From: Sean McCullough Date: Thu, 27 Aug 2020 17:20:26 -0500 Subject: [PATCH 07/10] PR comments --- .../src/AppendBlobClient.cs | 4 +- .../src/BlockBlobClient.cs | 7 +- .../Azure.Storage.Blobs/src/PageBlobClient.cs | 6 +- .../tests/AppendBlobClientTests.cs | 2 +- .../tests/BlobClientTests.cs | 2 +- .../tests/BlockBlobClientTests.cs | 62 +++++- .../tests/PageBlobClientTests.cs | 2 +- ...StageBlockAsync_InvalidStreamPosition.json | 71 +++++++ ...BlockAsync_InvalidStreamPositionAsync.json | 71 +++++++ ...StageBlockAsync_NonZeroStreamPosition.json | 179 ++++++++++++++++++ ...BlockAsync_NonZeroStreamPositionAsync.json | 179 ++++++++++++++++++ .../Azure.Storage.Common/src/Shared/Errors.cs | 4 +- .../src/DataLakeFileClient.cs | 2 +- .../tests/FileClientTests.cs | 2 +- .../src/ShareFileClient.cs | 8 +- .../tests/FileClientTests.cs | 2 +- 16 files changed, 582 insertions(+), 21 deletions(-) create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/StageBlockAsync_InvalidStreamPosition.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/StageBlockAsync_InvalidStreamPositionAsync.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/StageBlockAsync_NonZeroStreamPosition.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/StageBlockAsync_NonZeroStreamPositionAsync.json diff --git a/sdk/storage/Azure.Storage.Blobs/src/AppendBlobClient.cs b/sdk/storage/Azure.Storage.Blobs/src/AppendBlobClient.cs index a1d0c9615529e..66ac87d8ab8df 100644 --- a/sdk/storage/Azure.Storage.Blobs/src/AppendBlobClient.cs +++ b/sdk/storage/Azure.Storage.Blobs/src/AppendBlobClient.cs @@ -962,7 +962,7 @@ internal async Task> AppendBlockInternal( try { BlobErrors.VerifyHttpsCustomerProvidedKey(Uri, CustomerProvidedKey); - Errors.VerifyStreamPosition(content); + Errors.VerifyStreamPosition(content, nameof(content)); content = content?.WithNoDispose().WithProgress(progressHandler); return await BlobRestClient.AppendBlob.AppendBlockAsync( @@ -970,7 +970,7 @@ internal async Task> AppendBlockInternal( Pipeline, Uri, body: content, - contentLength: content?.Length - content?.Position ?? 0, + contentLength: (content?.Length - content?.Position) ?? 0, version: Version.ToVersionString(), transactionalContentHash: transactionalContentHash, leaseId: conditions?.LeaseId, diff --git a/sdk/storage/Azure.Storage.Blobs/src/BlockBlobClient.cs b/sdk/storage/Azure.Storage.Blobs/src/BlockBlobClient.cs index 0d0e4f9700404..ec143c824b932 100644 --- a/sdk/storage/Azure.Storage.Blobs/src/BlockBlobClient.cs +++ b/sdk/storage/Azure.Storage.Blobs/src/BlockBlobClient.cs @@ -716,14 +716,14 @@ internal virtual async Task> UploadInternal( $"{nameof(conditions)}: {conditions}"); try { - Errors.VerifyStreamPosition(content); + Errors.VerifyStreamPosition(content, nameof(content)); return await BlobRestClient.BlockBlob.UploadAsync( ClientDiagnostics, Pipeline, Uri, body: content, - contentLength: content?.Length - content?.Position ?? 0, + contentLength: (content?.Length - content?.Position) ?? 0, version: Version.ToVersionString(), blobContentType: blobHttpHeaders?.ContentType, blobContentEncoding: blobHttpHeaders?.ContentEncoding, @@ -969,6 +969,7 @@ internal virtual async Task> StageBlockInternal( $"{nameof(conditions)}: {conditions}"); try { + Errors.VerifyStreamPosition(content, nameof(content)); content = content.WithNoDispose().WithProgress(progressHandler); return await BlobRestClient.BlockBlob.StageBlockAsync( ClientDiagnostics, @@ -976,7 +977,7 @@ internal virtual async Task> StageBlockInternal( Uri, blockId: base64BlockId, body: content, - contentLength: content.Length, + contentLength: (content?.Length - content?.Position) ?? 0, version: Version.ToVersionString(), transactionalContentHash: transactionalContentHash, leaseId: conditions?.LeaseId, diff --git a/sdk/storage/Azure.Storage.Blobs/src/PageBlobClient.cs b/sdk/storage/Azure.Storage.Blobs/src/PageBlobClient.cs index e628ea2aa00c6..64deb093e3223 100644 --- a/sdk/storage/Azure.Storage.Blobs/src/PageBlobClient.cs +++ b/sdk/storage/Azure.Storage.Blobs/src/PageBlobClient.cs @@ -1083,16 +1083,16 @@ internal async Task> UploadPagesInternal( $"{nameof(conditions)}: {conditions}"); try { - Errors.VerifyStreamPosition(content); + Errors.VerifyStreamPosition(content, nameof(content)); content = content?.WithNoDispose().WithProgress(progressHandler); - var range = new HttpRange(offset, content?.Length - content?.Position ?? null); + var range = new HttpRange(offset, (content?.Length - content?.Position) ?? null); return await BlobRestClient.PageBlob.UploadPagesAsync( ClientDiagnostics, Pipeline, Uri, body: content, - contentLength: content?.Length - content?.Position ?? 0, + contentLength: (content?.Length - content?.Position) ?? 0, version: Version.ToVersionString(), transactionalContentHash: transactionalContentHash, timeout: default, diff --git a/sdk/storage/Azure.Storage.Blobs/tests/AppendBlobClientTests.cs b/sdk/storage/Azure.Storage.Blobs/tests/AppendBlobClientTests.cs index 0df976835c76b..fb3fc70e38de3 100644 --- a/sdk/storage/Azure.Storage.Blobs/tests/AppendBlobClientTests.cs +++ b/sdk/storage/Azure.Storage.Blobs/tests/AppendBlobClientTests.cs @@ -870,7 +870,7 @@ public async Task AppendBlockAsync_InvalidStreamPosition() await TestHelper.AssertExpectedExceptionAsync( blob.AppendBlockAsync(stream), - e => Assert.AreEqual("stream.Position must be less than stream.Length", e.Message)); + e => Assert.AreEqual("content.Position must be less than content.Length. Please set content.Position to the start of the data to upload.", e.Message)); } [Test] diff --git a/sdk/storage/Azure.Storage.Blobs/tests/BlobClientTests.cs b/sdk/storage/Azure.Storage.Blobs/tests/BlobClientTests.cs index 64ccfc4b4c50e..e7daf7abffd3b 100644 --- a/sdk/storage/Azure.Storage.Blobs/tests/BlobClientTests.cs +++ b/sdk/storage/Azure.Storage.Blobs/tests/BlobClientTests.cs @@ -431,7 +431,7 @@ public async Task UploadAsync_Stream_InvalidStreamPosition() await TestHelper.AssertExpectedExceptionAsync( blob.UploadAsync( content: stream), - e => Assert.AreEqual("stream.Position must be less than stream.Length", e.Message)); + e => Assert.AreEqual("content.Position must be less than content.Length. Please set content.Position to the start of the data to upload.", e.Message)); } [Test] diff --git a/sdk/storage/Azure.Storage.Blobs/tests/BlockBlobClientTests.cs b/sdk/storage/Azure.Storage.Blobs/tests/BlockBlobClientTests.cs index 926887e61933d..aba8285298e1e 100644 --- a/sdk/storage/Azure.Storage.Blobs/tests/BlockBlobClientTests.cs +++ b/sdk/storage/Azure.Storage.Blobs/tests/BlockBlobClientTests.cs @@ -434,6 +434,66 @@ public async Task StageBlockAsync_ProgressReporting() Assert.AreEqual(100 * Constants.MB, progress.List[progress.List.Count - 1]); } + [Test] + public async Task StageBlockAsync_InvalidStreamPosition() + { + await using DisposingContainer test = await GetTestContainerAsync(); + + // Arrange + var blockBlobName = GetNewBlobName(); + BlockBlobClient blob = InstrumentClient(test.Container.GetBlockBlobClient(blockBlobName)); + byte[] data = GetRandomBuffer(Size); + + using Stream stream = new MemoryStream(data) + { + Position = Size + }; + + // Act + await TestHelper.AssertExpectedExceptionAsync( + blob.StageBlockAsync( + base64BlockId: ToBase64(GetNewBlockName()), + content: stream), + e => Assert.AreEqual("content.Position must be less than content.Length. Please set content.Position to the start of the data to upload.", e.Message)); + } + + [Test] + public async Task StageBlockAsync_NonZeroStreamPosition() + { + await using DisposingContainer test = await GetTestContainerAsync(); + + // Arrange + BlockBlobClient blob = InstrumentClient(test.Container.GetBlockBlobClient(GetNewBlobName())); + long size = Constants.KB; + long position = 512; + byte[] data = GetRandomBuffer(size); + byte[] expectedData = new byte[size - position]; + Array.Copy(data, position, expectedData, 0, size - position); + + using Stream stream = new MemoryStream(data) + { + Position = position + }; + + string blockId = ToBase64(GetNewBlockName()); + + // Act + await blob.StageBlockAsync( + blockId, + content: stream); + + await blob.CommitBlockListAsync(new List() + { + blockId + }); + + // Assert + Response downloadResponse = await blob.DownloadAsync(); + var actual = new MemoryStream(); + await downloadResponse.Value.Content.CopyToAsync(actual); + TestHelper.AssertSequenceEqual(expectedData, actual.ToArray()); + } + [Test] public async Task StageBlockFromUriAsync_Min() { @@ -2079,7 +2139,7 @@ public async Task UploadAsync_InvalidStreamPosition() await TestHelper.AssertExpectedExceptionAsync( blob.UploadAsync( content: stream), - e => Assert.AreEqual("stream.Position must be less than stream.Length", e.Message)); + e => Assert.AreEqual("content.Position must be less than content.Length. Please set content.Position to the start of the data to upload.", e.Message)); } [Test] diff --git a/sdk/storage/Azure.Storage.Blobs/tests/PageBlobClientTests.cs b/sdk/storage/Azure.Storage.Blobs/tests/PageBlobClientTests.cs index 9d70c6d334cba..673c86a71c3a0 100644 --- a/sdk/storage/Azure.Storage.Blobs/tests/PageBlobClientTests.cs +++ b/sdk/storage/Azure.Storage.Blobs/tests/PageBlobClientTests.cs @@ -782,7 +782,7 @@ await TestHelper.AssertExpectedExceptionAsync( blob.UploadPagesAsync( content: stream, offset: 0), - e => Assert.AreEqual("stream.Position must be less than stream.Length", e.Message)); + e => Assert.AreEqual("content.Position must be less than content.Length. Please set content.Position to the start of the data to upload.", e.Message)); } [Test] diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/StageBlockAsync_InvalidStreamPosition.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/StageBlockAsync_InvalidStreamPosition.json new file mode 100644 index 0000000000000..53ce28a3820bd --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/StageBlockAsync_InvalidStreamPosition.json @@ -0,0 +1,71 @@ +{ + "Entries": [ + { + "RequestUri": "https://seanmcccanary3.blob.core.windows.net/test-container-047ee079-3919-f922-6a1f-9376cfbc42c3?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-4f6c7f9ddd31db439a4935646c377254-0b1dd2c8b2982942-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200827.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "d8365898-f9b7-e21d-5ff7-1d5d5affae1a", + "x-ms-date": "Thu, 27 Aug 2020 22:17:40 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 27 Aug 2020 22:17:39 GMT", + "ETag": "\u00220x8D84AD702925F62\u0022", + "Last-Modified": "Thu, 27 Aug 2020 22:17:39 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "d8365898-f9b7-e21d-5ff7-1d5d5affae1a", + "x-ms-request-id": "f895522c-a01e-0094-06bf-7c6dab000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seanmcccanary3.blob.core.windows.net/test-container-047ee079-3919-f922-6a1f-9376cfbc42c3?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-c5be7623512bb54d9cd6aaf8554e7183-1a588339c41fff47-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200827.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "27bb770e-446b-11ba-b29a-1ed8c06b1c6c", + "x-ms-date": "Thu, 27 Aug 2020 22:17:41 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 27 Aug 2020 22:17:39 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "27bb770e-446b-11ba-b29a-1ed8c06b1c6c", + "x-ms-request-id": "f8955239-a01e-0094-10bf-7c6dab000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "472235291", + "Storage_TestConfigDefault": "ProductionTenant\nseanmcccanary3\nU2FuaXRpemVk\nhttps://seanmcccanary3.blob.core.windows.net\nhttps://seanmcccanary3.file.core.windows.net\nhttps://seanmcccanary3.queue.core.windows.net\nhttps://seanmcccanary3.table.core.windows.net\n\n\n\n\nhttps://seanmcccanary3-secondary.blob.core.windows.net\nhttps://seanmcccanary3-secondary.file.core.windows.net\nhttps://seanmcccanary3-secondary.queue.core.windows.net\nhttps://seanmcccanary3-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seanmcccanary3.blob.core.windows.net/;QueueEndpoint=https://seanmcccanary3.queue.core.windows.net/;FileEndpoint=https://seanmcccanary3.file.core.windows.net/;BlobSecondaryEndpoint=https://seanmcccanary3-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seanmcccanary3-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seanmcccanary3-secondary.file.core.windows.net/;AccountName=seanmcccanary3;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/StageBlockAsync_InvalidStreamPositionAsync.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/StageBlockAsync_InvalidStreamPositionAsync.json new file mode 100644 index 0000000000000..0ebc86dae9a3a --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/StageBlockAsync_InvalidStreamPositionAsync.json @@ -0,0 +1,71 @@ +{ + "Entries": [ + { + "RequestUri": "https://seanmcccanary3.blob.core.windows.net/test-container-bae8ab22-4555-8611-1f97-304bf8fb7465?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-d4ed78adf2ef1148a1de0b766ebecbe7-0354f4b1264bf348-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200827.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "c80e136c-6855-0702-6892-a55190a34e99", + "x-ms-date": "Thu, 27 Aug 2020 22:17:41 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 27 Aug 2020 22:17:39 GMT", + "ETag": "\u00220x8D84AD7030E9A06\u0022", + "Last-Modified": "Thu, 27 Aug 2020 22:17:40 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "c80e136c-6855-0702-6892-a55190a34e99", + "x-ms-request-id": "75417986-201e-007e-1dbf-7c4a85000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seanmcccanary3.blob.core.windows.net/test-container-bae8ab22-4555-8611-1f97-304bf8fb7465?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-203e5686a5e9fe41a3573e392aac469e-88a68dcc6fc76948-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200827.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "c0096bf4-7b36-16b6-44d7-add3f5c2056e", + "x-ms-date": "Thu, 27 Aug 2020 22:17:41 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 27 Aug 2020 22:17:39 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "c0096bf4-7b36-16b6-44d7-add3f5c2056e", + "x-ms-request-id": "75417994-201e-007e-28bf-7c4a85000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "1998143705", + "Storage_TestConfigDefault": "ProductionTenant\nseanmcccanary3\nU2FuaXRpemVk\nhttps://seanmcccanary3.blob.core.windows.net\nhttps://seanmcccanary3.file.core.windows.net\nhttps://seanmcccanary3.queue.core.windows.net\nhttps://seanmcccanary3.table.core.windows.net\n\n\n\n\nhttps://seanmcccanary3-secondary.blob.core.windows.net\nhttps://seanmcccanary3-secondary.file.core.windows.net\nhttps://seanmcccanary3-secondary.queue.core.windows.net\nhttps://seanmcccanary3-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seanmcccanary3.blob.core.windows.net/;QueueEndpoint=https://seanmcccanary3.queue.core.windows.net/;FileEndpoint=https://seanmcccanary3.file.core.windows.net/;BlobSecondaryEndpoint=https://seanmcccanary3-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seanmcccanary3-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seanmcccanary3-secondary.file.core.windows.net/;AccountName=seanmcccanary3;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/StageBlockAsync_NonZeroStreamPosition.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/StageBlockAsync_NonZeroStreamPosition.json new file mode 100644 index 0000000000000..98a3f521b643f --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/StageBlockAsync_NonZeroStreamPosition.json @@ -0,0 +1,179 @@ +{ + "Entries": [ + { + "RequestUri": "https://seanmcccanary3.blob.core.windows.net/test-container-c3cf9661-e7d0-853c-9e93-98d52f7ec11d?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-c70dd1e73d032d45b25fe63348a4376a-f5d3f77cf39abf44-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200827.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "e927660c-a11d-05a0-9ce0-dde5850493dc", + "x-ms-date": "Thu, 27 Aug 2020 22:17:41 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 27 Aug 2020 22:17:39 GMT", + "ETag": "\u00220x8D84AD702C5B159\u0022", + "Last-Modified": "Thu, 27 Aug 2020 22:17:39 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "e927660c-a11d-05a0-9ce0-dde5850493dc", + "x-ms-request-id": "5a8b1c4a-701e-002e-53bf-7c88d5000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seanmcccanary3.blob.core.windows.net/test-container-c3cf9661-e7d0-853c-9e93-98d52f7ec11d/test-blob-1f53857b-a3f1-dee8-bf33-472b8aab6f1b?comp=block\u0026blockid=dGVzdC1ibG9jay1hYTU1ZjdlMy04ODZhLTEzNzAtZjY0Yy02NTMzNTllYTZjMWY%3D", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-850b3c18f0e0794ca0da8ac45bb34625-8f27f372170d3046-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200827.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "626a35f5-adc1-046d-6f99-6dd16681b80c", + "x-ms-date": "Thu, 27 Aug 2020 22:17:41 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "5y3HcfFDRrYb6FE9aeFmj56Xwz1kPpayqSFgcW7pDfVSaw5dxAyLH/oC/CUHuCwHmUeMWVXnm6mWFMjQ4tRHMdtb6v7TCMqRC6RCYUFwq/D0WNcmXbOga89kxq9EuzwlustJq80tM5F9\u002B02wpDloJWnX24r9INQnu38vb0IaTVBoHad2J/8jxiRGqWFm78aV/KFGbN\u002ByKJn2IfBO/sROYq38R4eS8f5ptBRltndywcu4mXKg1OBxtvUNfwUP1Mhg90e0aqc/Awqi3LjKTHEig2AklWRRrY3Mi5GRhHL4Wd9MBL4wvlcjeZVo/vgopmmD6vuk6z5jDkm5594WrX6YqYLYfkiz8sUJABzP6a\u002BVpOUnDpl2VG6h6fZ0dtZ4DcsX0FR1UCch0Pg2m\u002BsilCWaI0P57p7lIVUUN5VSPnvukfJRuBlaIFO9Bj6hQLiDflTQ2lKTfh4sMa7/YRmSz5J8Rwr40dwMPwPvPOdgQ\u002BGckLhAgWMpWxLUJIZqW746KjesJfiui614xJtPo0I2zO7NYtBgUU0uU\u002Bz4JKxWoeREtRKwtB7o7gUKyLzI2bfPnViXnPnu2djqfdEMtmcBIiO3Cu0whhfP5XPLVomQZnk0KIdUvgTqVtw5xjZM2zieCaWZEc7JnxZAyLeFIoJOWRdY2I3grWMezLQR9sDggwk7LU0=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 27 Aug 2020 22:17:39 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "626a35f5-adc1-046d-6f99-6dd16681b80c", + "x-ms-content-crc64": "2sJXufcQe1M=", + "x-ms-request-id": "5a8b1c55-701e-002e-5bbf-7c88d5000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seanmcccanary3.blob.core.windows.net/test-container-c3cf9661-e7d0-853c-9e93-98d52f7ec11d/test-blob-1f53857b-a3f1-dee8-bf33-472b8aab6f1b?comp=blocklist", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "104", + "Content-Type": "application/xml", + "traceparent": "00-754e10c0da908f41a9bf1816eb0f9a3f-68fcb7bc6982cc48-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200827.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "233d1c9e-0a7f-475e-96a5-4ec2d4a9de98", + "x-ms-date": "Thu, 27 Aug 2020 22:17:41 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "\u003CBlockList\u003E\u003CLatest\u003EdGVzdC1ibG9jay1hYTU1ZjdlMy04ODZhLTEzNzAtZjY0Yy02NTMzNTllYTZjMWY=\u003C/Latest\u003E\u003C/BlockList\u003E", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 27 Aug 2020 22:17:39 GMT", + "ETag": "\u00220x8D84AD702D66B7D\u0022", + "Last-Modified": "Thu, 27 Aug 2020 22:17:39 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "233d1c9e-0a7f-475e-96a5-4ec2d4a9de98", + "x-ms-content-crc64": "cu9ElBugvnI=", + "x-ms-request-id": "5a8b1c61-701e-002e-64bf-7c88d5000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seanmcccanary3.blob.core.windows.net/test-container-c3cf9661-e7d0-853c-9e93-98d52f7ec11d/test-blob-1f53857b-a3f1-dee8-bf33-472b8aab6f1b", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-c99e9c53b3299f4fb1f17a9751aaf21e-730a971541e9db47-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200827.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "4a32bce6-9444-488c-6247-6feb202ecdd2", + "x-ms-date": "Thu, 27 Aug 2020 22:17:41 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "512", + "Content-Type": "application/octet-stream", + "Date": "Thu, 27 Aug 2020 22:17:39 GMT", + "ETag": "\u00220x8D84AD702D66B7D\u0022", + "Last-Modified": "Thu, 27 Aug 2020 22:17:39 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "4a32bce6-9444-488c-6247-6feb202ecdd2", + "x-ms-creation-time": "Thu, 27 Aug 2020 22:17:39 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "5a8b1c67-701e-002e-69bf-7c88d5000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": "5y3HcfFDRrYb6FE9aeFmj56Xwz1kPpayqSFgcW7pDfVSaw5dxAyLH/oC/CUHuCwHmUeMWVXnm6mWFMjQ4tRHMdtb6v7TCMqRC6RCYUFwq/D0WNcmXbOga89kxq9EuzwlustJq80tM5F9\u002B02wpDloJWnX24r9INQnu38vb0IaTVBoHad2J/8jxiRGqWFm78aV/KFGbN\u002ByKJn2IfBO/sROYq38R4eS8f5ptBRltndywcu4mXKg1OBxtvUNfwUP1Mhg90e0aqc/Awqi3LjKTHEig2AklWRRrY3Mi5GRhHL4Wd9MBL4wvlcjeZVo/vgopmmD6vuk6z5jDkm5594WrX6YqYLYfkiz8sUJABzP6a\u002BVpOUnDpl2VG6h6fZ0dtZ4DcsX0FR1UCch0Pg2m\u002BsilCWaI0P57p7lIVUUN5VSPnvukfJRuBlaIFO9Bj6hQLiDflTQ2lKTfh4sMa7/YRmSz5J8Rwr40dwMPwPvPOdgQ\u002BGckLhAgWMpWxLUJIZqW746KjesJfiui614xJtPo0I2zO7NYtBgUU0uU\u002Bz4JKxWoeREtRKwtB7o7gUKyLzI2bfPnViXnPnu2djqfdEMtmcBIiO3Cu0whhfP5XPLVomQZnk0KIdUvgTqVtw5xjZM2zieCaWZEc7JnxZAyLeFIoJOWRdY2I3grWMezLQR9sDggwk7LU0=" + }, + { + "RequestUri": "https://seanmcccanary3.blob.core.windows.net/test-container-c3cf9661-e7d0-853c-9e93-98d52f7ec11d?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-45172c22b34882449bb4e3ff951bd0a1-dc13cb91dfa20144-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200827.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "18dcf981-9477-6a54-10b9-3c6f38cc6615", + "x-ms-date": "Thu, 27 Aug 2020 22:17:41 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 27 Aug 2020 22:17:39 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "18dcf981-9477-6a54-10b9-3c6f38cc6615", + "x-ms-request-id": "5a8b1c70-701e-002e-72bf-7c88d5000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "1687519723", + "Storage_TestConfigDefault": "ProductionTenant\nseanmcccanary3\nU2FuaXRpemVk\nhttps://seanmcccanary3.blob.core.windows.net\nhttps://seanmcccanary3.file.core.windows.net\nhttps://seanmcccanary3.queue.core.windows.net\nhttps://seanmcccanary3.table.core.windows.net\n\n\n\n\nhttps://seanmcccanary3-secondary.blob.core.windows.net\nhttps://seanmcccanary3-secondary.file.core.windows.net\nhttps://seanmcccanary3-secondary.queue.core.windows.net\nhttps://seanmcccanary3-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seanmcccanary3.blob.core.windows.net/;QueueEndpoint=https://seanmcccanary3.queue.core.windows.net/;FileEndpoint=https://seanmcccanary3.file.core.windows.net/;BlobSecondaryEndpoint=https://seanmcccanary3-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seanmcccanary3-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seanmcccanary3-secondary.file.core.windows.net/;AccountName=seanmcccanary3;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/StageBlockAsync_NonZeroStreamPositionAsync.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/StageBlockAsync_NonZeroStreamPositionAsync.json new file mode 100644 index 0000000000000..ef5ba6fcf858e --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/StageBlockAsync_NonZeroStreamPositionAsync.json @@ -0,0 +1,179 @@ +{ + "Entries": [ + { + "RequestUri": "https://seanmcccanary3.blob.core.windows.net/test-container-0911e116-5975-c078-9ba0-cb9179d8a552?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-b46cfe242cebb345b88f25dd84e77396-ed2f3ddaf533dc4a-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200827.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "a803adf2-a914-9720-d455-2d2fed8d51a9", + "x-ms-date": "Thu, 27 Aug 2020 22:17:41 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 27 Aug 2020 22:17:40 GMT", + "ETag": "\u00220x8D84AD70331477D\u0022", + "Last-Modified": "Thu, 27 Aug 2020 22:17:40 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "a803adf2-a914-9720-d455-2d2fed8d51a9", + "x-ms-request-id": "96b71c0e-c01e-0092-7dbf-7c5e14000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seanmcccanary3.blob.core.windows.net/test-container-0911e116-5975-c078-9ba0-cb9179d8a552/test-blob-1edd623a-b4f4-dff6-0167-c911a60bd67d?comp=block\u0026blockid=dGVzdC1ibG9jay04ZDg0MzUzZS0zMDMyLThiYjMtNDk4Ni01NzlhZWU0ZTJlNTg%3D", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-e6d68e4f24465547b4bafbe53ac3c902-bf013e67d1e4ce45-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200827.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "e3183df2-7aeb-81dd-3ec8-e4f81937b5bb", + "x-ms-date": "Thu, 27 Aug 2020 22:17:42 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "KQ9RcGOq60Sn4Y71IA/sXJR7r9BcP\u002Bo9VIE12wmlV3rzCyxeeIxRd5gXdznq6BpUOzswaUQGcuokFBvhdBA6AYoUAhXijeMHKTg3RcewUmtm4Z/Ode017JlCOWRwbwKH3HWv1uYFca1XKEAMzy0ic8GwepNxa4yc3hV8oFR/lrk2r2hRAXyEYW/xd0ytKR1rIMWiwPRuFnDpEvfRidFZ2JKG1SDE0HJEKxkkf/Q/7rX3EICO3NXFyJj3aO6EsteemJ\u002B6J1P9p09TXpTbSZd8qSRC2nlQyvu8wQ2HzGiDv3lBhedVhcZh\u002BmgwO35B6X4Be77KQtheTc2j/mZGdtrmz54bmcOwJiRd4eAQH499e9eOhVCquH2g4zgZsodgG4SOSWvgJVC6UVWZbWH4Ti0\u002BJYKPt/CJPBcgeraLlnOd/MZcgdYjnVWH1DT7EEsbqJQK24wE0WOTBQ1Uv6qZLrvh/HCbnMxXGogtB\u002BO7jSzLBNIhgbrnmStiyHzJzt2q7aV5GRTagAzIssEE1sl/2HfgiLrYeK0A\u002BmNFONRQjkuqgho\u002BQnMY8YTGWc7448Ji4\u002B8F6EUj0nX3eB\u002BxlUc4eCR1WVSvQZYDyJc2ER7fBxeg41XkSqYFh6\u002BlRslUZ1w8juCqg4lus6FZASCu7MFWGHAIELLyUy1\u002BcNKkCfrMr2E7\u002BoM=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 27 Aug 2020 22:17:40 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "e3183df2-7aeb-81dd-3ec8-e4f81937b5bb", + "x-ms-content-crc64": "YPU6GJLTaRQ=", + "x-ms-request-id": "96b71c1c-c01e-0092-09bf-7c5e14000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seanmcccanary3.blob.core.windows.net/test-container-0911e116-5975-c078-9ba0-cb9179d8a552/test-blob-1edd623a-b4f4-dff6-0167-c911a60bd67d?comp=blocklist", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "104", + "Content-Type": "application/xml", + "traceparent": "00-d6ce963d3835724188515e1c9abfa24a-be641b630486f149-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200827.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "b1a8e4c7-4b36-d16d-7928-0b72cf33f97f", + "x-ms-date": "Thu, 27 Aug 2020 22:17:42 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": "\u003CBlockList\u003E\u003CLatest\u003EdGVzdC1ibG9jay04ZDg0MzUzZS0zMDMyLThiYjMtNDk4Ni01NzlhZWU0ZTJlNTg=\u003C/Latest\u003E\u003C/BlockList\u003E", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 27 Aug 2020 22:17:40 GMT", + "ETag": "\u00220x8D84AD7033FEEAE\u0022", + "Last-Modified": "Thu, 27 Aug 2020 22:17:40 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "b1a8e4c7-4b36-d16d-7928-0b72cf33f97f", + "x-ms-content-crc64": "EWTLuMhKDAU=", + "x-ms-request-id": "96b71c21-c01e-0092-0ebf-7c5e14000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seanmcccanary3.blob.core.windows.net/test-container-0911e116-5975-c078-9ba0-cb9179d8a552/test-blob-1edd623a-b4f4-dff6-0167-c911a60bd67d", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-86e024dae82a61438f8e2fbb7cb87a79-afc54ea262e19e45-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200827.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "3430edc9-048f-8084-0692-9069a4d6bbd5", + "x-ms-date": "Thu, 27 Aug 2020 22:17:42 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "512", + "Content-Type": "application/octet-stream", + "Date": "Thu, 27 Aug 2020 22:17:40 GMT", + "ETag": "\u00220x8D84AD7033FEEAE\u0022", + "Last-Modified": "Thu, 27 Aug 2020 22:17:40 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "3430edc9-048f-8084-0692-9069a4d6bbd5", + "x-ms-creation-time": "Thu, 27 Aug 2020 22:17:40 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "96b71c28-c01e-0092-15bf-7c5e14000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": "KQ9RcGOq60Sn4Y71IA/sXJR7r9BcP\u002Bo9VIE12wmlV3rzCyxeeIxRd5gXdznq6BpUOzswaUQGcuokFBvhdBA6AYoUAhXijeMHKTg3RcewUmtm4Z/Ode017JlCOWRwbwKH3HWv1uYFca1XKEAMzy0ic8GwepNxa4yc3hV8oFR/lrk2r2hRAXyEYW/xd0ytKR1rIMWiwPRuFnDpEvfRidFZ2JKG1SDE0HJEKxkkf/Q/7rX3EICO3NXFyJj3aO6EsteemJ\u002B6J1P9p09TXpTbSZd8qSRC2nlQyvu8wQ2HzGiDv3lBhedVhcZh\u002BmgwO35B6X4Be77KQtheTc2j/mZGdtrmz54bmcOwJiRd4eAQH499e9eOhVCquH2g4zgZsodgG4SOSWvgJVC6UVWZbWH4Ti0\u002BJYKPt/CJPBcgeraLlnOd/MZcgdYjnVWH1DT7EEsbqJQK24wE0WOTBQ1Uv6qZLrvh/HCbnMxXGogtB\u002BO7jSzLBNIhgbrnmStiyHzJzt2q7aV5GRTagAzIssEE1sl/2HfgiLrYeK0A\u002BmNFONRQjkuqgho\u002BQnMY8YTGWc7448Ji4\u002B8F6EUj0nX3eB\u002BxlUc4eCR1WVSvQZYDyJc2ER7fBxeg41XkSqYFh6\u002BlRslUZ1w8juCqg4lus6FZASCu7MFWGHAIELLyUy1\u002BcNKkCfrMr2E7\u002BoM=" + }, + { + "RequestUri": "https://seanmcccanary3.blob.core.windows.net/test-container-0911e116-5975-c078-9ba0-cb9179d8a552?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-c26c7219b1777b4fb1a4e094fbaff2f2-ae9e031dd7459842-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.6.0-dev.20200827.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "e1a8d82d-c402-10f0-695c-115c23779d1d", + "x-ms-date": "Thu, 27 Aug 2020 22:17:42 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Thu, 27 Aug 2020 22:17:40 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "e1a8d82d-c402-10f0-695c-115c23779d1d", + "x-ms-request-id": "96b71c36-c01e-0092-23bf-7c5e14000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "1498153845", + "Storage_TestConfigDefault": "ProductionTenant\nseanmcccanary3\nU2FuaXRpemVk\nhttps://seanmcccanary3.blob.core.windows.net\nhttps://seanmcccanary3.file.core.windows.net\nhttps://seanmcccanary3.queue.core.windows.net\nhttps://seanmcccanary3.table.core.windows.net\n\n\n\n\nhttps://seanmcccanary3-secondary.blob.core.windows.net\nhttps://seanmcccanary3-secondary.file.core.windows.net\nhttps://seanmcccanary3-secondary.queue.core.windows.net\nhttps://seanmcccanary3-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seanmcccanary3.blob.core.windows.net/;QueueEndpoint=https://seanmcccanary3.queue.core.windows.net/;FileEndpoint=https://seanmcccanary3.file.core.windows.net/;BlobSecondaryEndpoint=https://seanmcccanary3-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seanmcccanary3-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seanmcccanary3-secondary.file.core.windows.net/;AccountName=seanmcccanary3;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Common/src/Shared/Errors.cs b/sdk/storage/Azure.Storage.Common/src/Shared/Errors.cs index 7c4347eb580fd..dc0e1544369f0 100644 --- a/sdk/storage/Azure.Storage.Common/src/Shared/Errors.cs +++ b/sdk/storage/Azure.Storage.Common/src/Shared/Errors.cs @@ -47,11 +47,11 @@ public static ArgumentException InvalidService(char s) public static ArgumentException InsufficientStorageTransferOptions(long streamLength, long statedMaxBlockSize, long necessaryMinBlockSize) => new ArgumentException($"Cannot upload {streamLength} bytes with a maximum transfer size of {statedMaxBlockSize} bytes per block. Please increase the StorageTransferOptions.MaximumTransferSize to at least {necessaryMinBlockSize}."); - internal static void VerifyStreamPosition(Stream stream) + internal static void VerifyStreamPosition(Stream stream, string streamName) { if (stream != null && stream.CanSeek && stream.Length > 0 && stream.Position >= stream.Length) { - throw new ArgumentException($"{nameof(stream)}.{nameof(stream.Position)} must be less than {nameof(stream)}.{nameof(stream.Length)}"); + throw new ArgumentException($"{streamName}.{nameof(stream.Position)} must be less than {streamName}.{nameof(stream.Length)}. Please set {streamName}.{nameof(stream.Position)} to the start of the data to upload."); } } } diff --git a/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeFileClient.cs b/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeFileClient.cs index 1ff36231cfe11..6c6770d1eec6f 100644 --- a/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeFileClient.cs +++ b/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeFileClient.cs @@ -1820,7 +1820,7 @@ internal virtual async Task AppendInternal( $"{nameof(leaseId)}: {leaseId}\n"); try { - Errors.VerifyStreamPosition(content); + Errors.VerifyStreamPosition(content, nameof(content)); Response response = await DataLakeRestClient.Path.AppendDataAsync( clientDiagnostics: ClientDiagnostics, diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/FileClientTests.cs b/sdk/storage/Azure.Storage.Files.DataLake/tests/FileClientTests.cs index 873ce69b34dfd..1d59781a97fe7 100644 --- a/sdk/storage/Azure.Storage.Files.DataLake/tests/FileClientTests.cs +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/FileClientTests.cs @@ -2754,7 +2754,7 @@ public async Task UploadAsync_Stream_InvalidStreamPosition() await TestHelper.AssertExpectedExceptionAsync( file.UploadAsync( content: stream), - e => Assert.AreEqual("stream.Position must be less than stream.Length", e.Message)); + e => Assert.AreEqual("content.Position must be less than content.Length. Please set content.Position to the start of the data to upload.", e.Message)); } [Test] diff --git a/sdk/storage/Azure.Storage.Files.Shares/src/ShareFileClient.cs b/sdk/storage/Azure.Storage.Files.Shares/src/ShareFileClient.cs index 63885c7f7deae..cdc6fed75c9b6 100644 --- a/sdk/storage/Azure.Storage.Files.Shares/src/ShareFileClient.cs +++ b/sdk/storage/Azure.Storage.Files.Shares/src/ShareFileClient.cs @@ -3563,7 +3563,7 @@ private async Task> UploadRangeInternal( $"{nameof(Uri)}: {Uri}"); try { - Errors.VerifyStreamPosition(content); + Errors.VerifyStreamPosition(content, nameof(content)); content = content.WithNoDispose().WithProgress(progressHandler); return await FileRestClient.File.UploadRangeAsync( ClientDiagnostics, @@ -3571,7 +3571,7 @@ private async Task> UploadRangeInternal( Uri, version: Version.ToVersionString(), optionalbody: content, - contentLength: content?.Length - content?.Position ?? 0, + contentLength: (content?.Length - content?.Position) ?? 0, range: range.ToString(), fileRangeWrite: ShareFileRangeWriteType.Update, contentHash: transactionalContentHash, @@ -4092,11 +4092,11 @@ internal async Task> UploadInternal( bool async, CancellationToken cancellationToken) { - Errors.VerifyStreamPosition(content); + Errors.VerifyStreamPosition(content, nameof(content)); // Try to upload the file as a single range Debug.Assert(singleRangeThreshold <= Constants.File.MaxFileUpdateRange); - var length = content.Length - content.Position; + var length = content?.Length - content?.Position; if (length <= singleRangeThreshold) { return await UploadRangeInternal( diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/FileClientTests.cs b/sdk/storage/Azure.Storage.Files.Shares/tests/FileClientTests.cs index 9189711274078..1d1238174e873 100644 --- a/sdk/storage/Azure.Storage.Files.Shares/tests/FileClientTests.cs +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/FileClientTests.cs @@ -2046,7 +2046,7 @@ public async Task UploadAsync_Stream_InvalidStreamPosition() await TestHelper.AssertExpectedExceptionAsync( file.UploadAsync( content: stream), - e => Assert.AreEqual("stream.Position must be less than stream.Length", e.Message)); + e => Assert.AreEqual("content.Position must be less than content.Length. Please set content.Position to the start of the data to upload.", e.Message)); } [Test] From 85b536ab16f3dd4d6f65aefdaacbc8cea6cfcc3b Mon Sep 17 00:00:00 2001 From: Sean McCullough Date: Fri, 28 Aug 2020 13:45:23 -0500 Subject: [PATCH 08/10] Added additional unit tests --- .../tests/FileClientTests.cs | 61 +++++ ...ploadRangeAsync_InvalidStreamPosition.json | 161 ++++++++++++ ...RangeAsync_InvalidStreamPositionAsync.json | 161 ++++++++++++ ...ploadRangeAsync_NonZeroStreamPosition.json | 246 ++++++++++++++++++ ...RangeAsync_NonZeroStreamPositionAsync.json | 246 ++++++++++++++++++ 5 files changed, 875 insertions(+) create mode 100644 sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadRangeAsync_InvalidStreamPosition.json create mode 100644 sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadRangeAsync_InvalidStreamPositionAsync.json create mode 100644 sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadRangeAsync_NonZeroStreamPosition.json create mode 100644 sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadRangeAsync_NonZeroStreamPositionAsync.json diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/FileClientTests.cs b/sdk/storage/Azure.Storage.Files.Shares/tests/FileClientTests.cs index 1d1238174e873..6373b573d3e36 100644 --- a/sdk/storage/Azure.Storage.Files.Shares/tests/FileClientTests.cs +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/FileClientTests.cs @@ -1903,6 +1903,67 @@ await TestHelper.AssertExpectedExceptionAsync( } } + [Test] + public async Task UploadRangeAsync_InvalidStreamPosition() + { + // Arrange + await using DisposingDirectory test = await GetTestDirectoryAsync(); + ShareFileClient file = InstrumentClient(test.Directory.GetFileClient(GetNewFileName())); + long size = Constants.KB; + await file.CreateAsync(size); + + byte[] data = GetRandomBuffer(size); + + using Stream stream = new MemoryStream(data) + { + Position = size + }; + + HttpRange range = new HttpRange(0, stream.Length); + + // Act + await TestHelper.AssertExpectedExceptionAsync( + file.UploadRangeAsync( + range: range, + content: stream), + e => Assert.AreEqual("content.Position must be less than content.Length. Please set content.Position to the start of the data to upload.", e.Message)); + } + + [Test] + public async Task UploadRangeAsync_NonZeroStreamPosition() + { + // Arrange + await using DisposingDirectory test = await GetTestDirectoryAsync(); + ShareFileClient file = InstrumentClient(test.Directory.GetFileClient(GetNewFileName())); + long size = Constants.KB; + long position = 512; + await file.CreateAsync(size - position); + + byte[] data = GetRandomBuffer(size); + byte[] expectedData = new byte[size - position]; + Array.Copy(data, position, expectedData, 0, size - position); + + using Stream stream = new MemoryStream(data) + { + Position = position + }; + + HttpRange range = new HttpRange(0, stream.Length - stream.Position); + + // Act + await file.UploadRangeAsync( + range: range, + stream); + + // Assert + Response response = await file.DownloadAsync(); + + var actualData = new byte[512]; + using var actualStream = new MemoryStream(actualData); + await response.Value.Content.CopyToAsync(actualStream); + TestHelper.AssertSequenceEqual(expectedData, actualData); + } + [Test] public async Task UploadAsync_Simple() { diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadRangeAsync_InvalidStreamPosition.json b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadRangeAsync_InvalidStreamPosition.json new file mode 100644 index 0000000000000..6ae1b31e1b57c --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadRangeAsync_InvalidStreamPosition.json @@ -0,0 +1,161 @@ +{ + "Entries": [ + { + "RequestUri": "https://seanmcccanary3.file.core.windows.net/test-share-036d52ba-03d1-49e0-785d-08a8485aab56?restype=share", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-7c3ac60cdd4e444db3bd1753bd769b0c-4a7d53c19fb7b14d-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200828.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "7a2858b5-b5ad-3229-f763-1a9b9a6122fa", + "x-ms-date": "Fri, 28 Aug 2020 18:44:01 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 28 Aug 2020 18:44:01 GMT", + "ETag": "\u00220x8D84B8254CCA644\u0022", + "Last-Modified": "Fri, 28 Aug 2020 18:44:01 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "7a2858b5-b5ad-3229-f763-1a9b9a6122fa", + "x-ms-request-id": "dcd578b0-d01a-0045-566b-7d0f21000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seanmcccanary3.file.core.windows.net/test-share-036d52ba-03d1-49e0-785d-08a8485aab56/test-directory-f79b8d7d-736d-403c-bc79-e81858e3bac1?restype=directory", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-32b0b0a6fc621b4cbc83c05f56a258ec-5b3c7d61ff386243-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200828.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "017fb096-641c-4247-1be8-bd33cc10d914", + "x-ms-date": "Fri, 28 Aug 2020 18:44:01 GMT", + "x-ms-file-attributes": "None", + "x-ms-file-creation-time": "Now", + "x-ms-file-last-write-time": "Now", + "x-ms-file-permission": "Inherit", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 28 Aug 2020 18:44:01 GMT", + "ETag": "\u00220x8D84B8254DAAF78\u0022", + "Last-Modified": "Fri, 28 Aug 2020 18:44:01 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "017fb096-641c-4247-1be8-bd33cc10d914", + "x-ms-file-attributes": "Directory", + "x-ms-file-change-time": "2020-08-28T18:44:01.4374776Z", + "x-ms-file-creation-time": "2020-08-28T18:44:01.4374776Z", + "x-ms-file-id": "13835128424026341376", + "x-ms-file-last-write-time": "2020-08-28T18:44:01.4374776Z", + "x-ms-file-parent-id": "0", + "x-ms-file-permission-key": "17860367565182308406*11459378189709739967", + "x-ms-request-id": "dcd578b3-d01a-0045-576b-7d0f21000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seanmcccanary3.file.core.windows.net/test-share-036d52ba-03d1-49e0-785d-08a8485aab56/test-directory-f79b8d7d-736d-403c-bc79-e81858e3bac1/test-file-479859a8-326e-4cc7-e447-ad9927c0e0c2", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-53dd4d6c2cc0194b9259893162befad6-823b4ce56227f343-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200828.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "07d338fa-1161-6449-e832-1dd4b6ae1b5b", + "x-ms-content-length": "1024", + "x-ms-date": "Fri, 28 Aug 2020 18:44:02 GMT", + "x-ms-file-attributes": "None", + "x-ms-file-creation-time": "Now", + "x-ms-file-last-write-time": "Now", + "x-ms-file-permission": "Inherit", + "x-ms-return-client-request-id": "true", + "x-ms-type": "file", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 28 Aug 2020 18:44:01 GMT", + "ETag": "\u00220x8D84B8254E75BFF\u0022", + "Last-Modified": "Fri, 28 Aug 2020 18:44:01 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "07d338fa-1161-6449-e832-1dd4b6ae1b5b", + "x-ms-file-attributes": "Archive", + "x-ms-file-change-time": "2020-08-28T18:44:01.5205375Z", + "x-ms-file-creation-time": "2020-08-28T18:44:01.5205375Z", + "x-ms-file-id": "11529285414812647424", + "x-ms-file-last-write-time": "2020-08-28T18:44:01.5205375Z", + "x-ms-file-parent-id": "13835128424026341376", + "x-ms-file-permission-key": "4010187179898695473*11459378189709739967", + "x-ms-request-id": "dcd578b4-d01a-0045-586b-7d0f21000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seanmcccanary3.file.core.windows.net/test-share-036d52ba-03d1-49e0-785d-08a8485aab56?restype=share", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-0d6729d0200c164588b3e11166bbcd81-85df60111c796040-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200828.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "77a1e5a3-a9a3-e5e6-fd6b-e172bba4e635", + "x-ms-date": "Fri, 28 Aug 2020 18:44:02 GMT", + "x-ms-delete-snapshots": "include", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 28 Aug 2020 18:44:01 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "77a1e5a3-a9a3-e5e6-fd6b-e172bba4e635", + "x-ms-request-id": "dcd578b5-d01a-0045-596b-7d0f21000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "1682147048", + "Storage_TestConfigDefault": "ProductionTenant\nseanmcccanary3\nU2FuaXRpemVk\nhttps://seanmcccanary3.blob.core.windows.net\nhttps://seanmcccanary3.file.core.windows.net\nhttps://seanmcccanary3.queue.core.windows.net\nhttps://seanmcccanary3.table.core.windows.net\n\n\n\n\nhttps://seanmcccanary3-secondary.blob.core.windows.net\nhttps://seanmcccanary3-secondary.file.core.windows.net\nhttps://seanmcccanary3-secondary.queue.core.windows.net\nhttps://seanmcccanary3-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seanmcccanary3.blob.core.windows.net/;QueueEndpoint=https://seanmcccanary3.queue.core.windows.net/;FileEndpoint=https://seanmcccanary3.file.core.windows.net/;BlobSecondaryEndpoint=https://seanmcccanary3-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seanmcccanary3-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seanmcccanary3-secondary.file.core.windows.net/;AccountName=seanmcccanary3;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadRangeAsync_InvalidStreamPositionAsync.json b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadRangeAsync_InvalidStreamPositionAsync.json new file mode 100644 index 0000000000000..eb70d41b00e96 --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadRangeAsync_InvalidStreamPositionAsync.json @@ -0,0 +1,161 @@ +{ + "Entries": [ + { + "RequestUri": "https://seanmcccanary3.file.core.windows.net/test-share-977d2eec-2bea-65f3-b3a1-712bada539d8?restype=share", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-0e4e9821f17f2749b83c705263ff15fc-c2afebbfe2871348-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200828.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "e8744f39-d957-5f3e-8a4a-0b6c33cfa24b", + "x-ms-date": "Fri, 28 Aug 2020 18:44:02 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 28 Aug 2020 18:44:01 GMT", + "ETag": "\u00220x8D84B825559C580\u0022", + "Last-Modified": "Fri, 28 Aug 2020 18:44:02 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "e8744f39-d957-5f3e-8a4a-0b6c33cfa24b", + "x-ms-request-id": "0855b74e-001a-0024-206b-7d2c62000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seanmcccanary3.file.core.windows.net/test-share-977d2eec-2bea-65f3-b3a1-712bada539d8/test-directory-af70e02c-c732-c115-d29f-33aa4b818e93?restype=directory", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-ec14de1f7908d7438981fffac17e66fa-d8a8666cad740749-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200828.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "f544949d-20af-7235-3ab3-15b8a5941308", + "x-ms-date": "Fri, 28 Aug 2020 18:44:02 GMT", + "x-ms-file-attributes": "None", + "x-ms-file-creation-time": "Now", + "x-ms-file-last-write-time": "Now", + "x-ms-file-permission": "Inherit", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 28 Aug 2020 18:44:01 GMT", + "ETag": "\u00220x8D84B825562E441\u0022", + "Last-Modified": "Fri, 28 Aug 2020 18:44:02 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "f544949d-20af-7235-3ab3-15b8a5941308", + "x-ms-file-attributes": "Directory", + "x-ms-file-change-time": "2020-08-28T18:44:02.3301185Z", + "x-ms-file-creation-time": "2020-08-28T18:44:02.3301185Z", + "x-ms-file-id": "13835128424026341376", + "x-ms-file-last-write-time": "2020-08-28T18:44:02.3301185Z", + "x-ms-file-parent-id": "0", + "x-ms-file-permission-key": "17860367565182308406*11459378189709739967", + "x-ms-request-id": "0855b751-001a-0024-216b-7d2c62000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seanmcccanary3.file.core.windows.net/test-share-977d2eec-2bea-65f3-b3a1-712bada539d8/test-directory-af70e02c-c732-c115-d29f-33aa4b818e93/test-file-299b78bc-44dd-dc1a-60e3-bd1bea92a2e3", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-2505285629e1694194677412f2f57439-e9ba760b3e8e8a49-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200828.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "a6c7d402-8053-59b6-7a68-95cb631987a7", + "x-ms-content-length": "1024", + "x-ms-date": "Fri, 28 Aug 2020 18:44:02 GMT", + "x-ms-file-attributes": "None", + "x-ms-file-creation-time": "Now", + "x-ms-file-last-write-time": "Now", + "x-ms-file-permission": "Inherit", + "x-ms-return-client-request-id": "true", + "x-ms-type": "file", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 28 Aug 2020 18:44:01 GMT", + "ETag": "\u00220x8D84B82556A3891\u0022", + "Last-Modified": "Fri, 28 Aug 2020 18:44:02 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "a6c7d402-8053-59b6-7a68-95cb631987a7", + "x-ms-file-attributes": "Archive", + "x-ms-file-change-time": "2020-08-28T18:44:02.3781521Z", + "x-ms-file-creation-time": "2020-08-28T18:44:02.3781521Z", + "x-ms-file-id": "11529285414812647424", + "x-ms-file-last-write-time": "2020-08-28T18:44:02.3781521Z", + "x-ms-file-parent-id": "13835128424026341376", + "x-ms-file-permission-key": "4010187179898695473*11459378189709739967", + "x-ms-request-id": "0855b752-001a-0024-226b-7d2c62000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seanmcccanary3.file.core.windows.net/test-share-977d2eec-2bea-65f3-b3a1-712bada539d8?restype=share", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-828600e555a53b4b9d90460ba01769fc-972ee8a99a7c404a-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200828.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "58ca5af6-5723-a93b-81f5-df3e604c3cf0", + "x-ms-date": "Fri, 28 Aug 2020 18:44:02 GMT", + "x-ms-delete-snapshots": "include", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 28 Aug 2020 18:44:02 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "58ca5af6-5723-a93b-81f5-df3e604c3cf0", + "x-ms-request-id": "0855b753-001a-0024-236b-7d2c62000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "426172443", + "Storage_TestConfigDefault": "ProductionTenant\nseanmcccanary3\nU2FuaXRpemVk\nhttps://seanmcccanary3.blob.core.windows.net\nhttps://seanmcccanary3.file.core.windows.net\nhttps://seanmcccanary3.queue.core.windows.net\nhttps://seanmcccanary3.table.core.windows.net\n\n\n\n\nhttps://seanmcccanary3-secondary.blob.core.windows.net\nhttps://seanmcccanary3-secondary.file.core.windows.net\nhttps://seanmcccanary3-secondary.queue.core.windows.net\nhttps://seanmcccanary3-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seanmcccanary3.blob.core.windows.net/;QueueEndpoint=https://seanmcccanary3.queue.core.windows.net/;FileEndpoint=https://seanmcccanary3.file.core.windows.net/;BlobSecondaryEndpoint=https://seanmcccanary3-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seanmcccanary3-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seanmcccanary3-secondary.file.core.windows.net/;AccountName=seanmcccanary3;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadRangeAsync_NonZeroStreamPosition.json b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadRangeAsync_NonZeroStreamPosition.json new file mode 100644 index 0000000000000..5cadbce71252a --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadRangeAsync_NonZeroStreamPosition.json @@ -0,0 +1,246 @@ +{ + "Entries": [ + { + "RequestUri": "https://seanmcccanary3.file.core.windows.net/test-share-8fed9a3d-56e5-27c3-546a-aede677099a1?restype=share", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-d95d32098e511f43b9f64ad4a9d71a9d-88b1b1dcfc4c8e4f-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200828.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "15fa456b-3d9c-1546-0caf-a68ff848a858", + "x-ms-date": "Fri, 28 Aug 2020 18:44:02 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 28 Aug 2020 18:44:01 GMT", + "ETag": "\u00220x8D84B82551808A8\u0022", + "Last-Modified": "Fri, 28 Aug 2020 18:44:01 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "15fa456b-3d9c-1546-0caf-a68ff848a858", + "x-ms-request-id": "d7d924c1-801a-0083-166b-7dc4a0000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seanmcccanary3.file.core.windows.net/test-share-8fed9a3d-56e5-27c3-546a-aede677099a1/test-directory-0bddb327-82d8-c5f4-a10b-018d8d2d56f7?restype=directory", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-603f3752a1efdb41b625283be5149c26-137ca598ec8daa46-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200828.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "1e6e71ae-f77f-e816-5134-73903bb887de", + "x-ms-date": "Fri, 28 Aug 2020 18:44:02 GMT", + "x-ms-file-attributes": "None", + "x-ms-file-creation-time": "Now", + "x-ms-file-last-write-time": "Now", + "x-ms-file-permission": "Inherit", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 28 Aug 2020 18:44:01 GMT", + "ETag": "\u00220x8D84B82551F3F1B\u0022", + "Last-Modified": "Fri, 28 Aug 2020 18:44:01 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "1e6e71ae-f77f-e816-5134-73903bb887de", + "x-ms-file-attributes": "Directory", + "x-ms-file-change-time": "2020-08-28T18:44:01.8867995Z", + "x-ms-file-creation-time": "2020-08-28T18:44:01.8867995Z", + "x-ms-file-id": "13835128424026341376", + "x-ms-file-last-write-time": "2020-08-28T18:44:01.8867995Z", + "x-ms-file-parent-id": "0", + "x-ms-file-permission-key": "17860367565182308406*11459378189709739967", + "x-ms-request-id": "d7d924c4-801a-0083-176b-7dc4a0000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seanmcccanary3.file.core.windows.net/test-share-8fed9a3d-56e5-27c3-546a-aede677099a1/test-directory-0bddb327-82d8-c5f4-a10b-018d8d2d56f7/test-file-3827af58-87d5-a3e1-ae10-e17ad380f538", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-346e6a00a7ede8448b8550afe8c8fc3e-9323b45b2d3fa14d-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200828.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "201bd0d6-b142-2770-8fca-6f6f159c15d0", + "x-ms-content-length": "512", + "x-ms-date": "Fri, 28 Aug 2020 18:44:02 GMT", + "x-ms-file-attributes": "None", + "x-ms-file-creation-time": "Now", + "x-ms-file-last-write-time": "Now", + "x-ms-file-permission": "Inherit", + "x-ms-return-client-request-id": "true", + "x-ms-type": "file", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 28 Aug 2020 18:44:01 GMT", + "ETag": "\u00220x8D84B825525A8E9\u0022", + "Last-Modified": "Fri, 28 Aug 2020 18:44:01 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "201bd0d6-b142-2770-8fca-6f6f159c15d0", + "x-ms-file-attributes": "Archive", + "x-ms-file-change-time": "2020-08-28T18:44:01.9288297Z", + "x-ms-file-creation-time": "2020-08-28T18:44:01.9288297Z", + "x-ms-file-id": "11529285414812647424", + "x-ms-file-last-write-time": "2020-08-28T18:44:01.9288297Z", + "x-ms-file-parent-id": "13835128424026341376", + "x-ms-file-permission-key": "4010187179898695473*11459378189709739967", + "x-ms-request-id": "d7d924c5-801a-0083-186b-7dc4a0000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seanmcccanary3.file.core.windows.net/test-share-8fed9a3d-56e5-27c3-546a-aede677099a1/test-directory-0bddb327-82d8-c5f4-a10b-018d8d2d56f7/test-file-3827af58-87d5-a3e1-ae10-e17ad380f538?comp=range", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-fbe693379e9a1c49949c874e1d7ca23c-343f12c250932547-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200828.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "1f23c3c7-62e5-38e1-5c9e-6f9e5923fb3d", + "x-ms-date": "Fri, 28 Aug 2020 18:44:02 GMT", + "x-ms-range": "bytes=0-511", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12", + "x-ms-write": "update" + }, + "RequestBody": "HL4ZV8\u002Bv365MgJgQDcqmIUgiJyNEIbzOUMP8dmDzQjiOn2du3pmmNeibTdF6\u002BAfkkUlby/5alvoCSgYMs2hOWD1ggW5jOEOve/I6qdPqVFe7F\u002BUWl3c5MwhsbJOSmoF/TfWTGnaZgVkGrE8MH\u002B0mF/avUJyDN8HGJk5l9suwHOBwu1veVzrhIZaMEOsnLBMaRlSd40rl/BY0zfMoNIuNVY9vnGSSSMC7zi4F9yfVnvk6Sq93EzmWir5FqolHuO0L/rpbuJCvh/6U4RUb4AXuXi757unbFkJW2RGlTZ02dBVA\u002BvhseeZoi8Kx4jEjeqq5VktbTcoEL\u002Bh4Bd5/CTpgXm3/2uUMguVIkGImKTMQMl9m7PZR2yZLPMoQ83QH6YGIUYTDJJ/FrdRmErxn3Qa0Z9J/GBxDD4JGtJ4a\u002B45xQafhntivTQ6/oT8i6shq417EXIyhh9FkREEBfW8BqrFF9dAVhj8uBBrDwHbdISS63NE/Vp8Cz7rVfFmWrc\u002BfvveO3PX3VVwelldx3sZahyMdR6GewVMSQyUWPwrml1dKIwJ\u002BT0QuwoZ0IcBHkPHze/U1eWYuAfyke5jP4RVSN/4AJ7rE2zff7oUaKaCSyrM0I8QVsB7xGyIF2tOrXuFxIunCR2g2Lp\u002B9VovhFNhbEbHkm71RPIfgDwuXvwBkM4\u002BkqQY=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Content-MD5": "DiZcv1M9H6dgt/nSXBVIXQ==", + "Date": "Fri, 28 Aug 2020 18:44:01 GMT", + "ETag": "\u00220x8D84B82552E842A\u0022", + "Last-Modified": "Fri, 28 Aug 2020 18:44:01 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "1f23c3c7-62e5-38e1-5c9e-6f9e5923fb3d", + "x-ms-request-id": "d7d924c6-801a-0083-196b-7dc4a0000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seanmcccanary3.file.core.windows.net/test-share-8fed9a3d-56e5-27c3-546a-aede677099a1/test-directory-0bddb327-82d8-c5f4-a10b-018d8d2d56f7/test-file-3827af58-87d5-a3e1-ae10-e17ad380f538", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-16e3a946c83f0e498a6ba5b45764924e-5c889d0b3ce4764f-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200828.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "cb6b4137-8980-5521-ee4a-ee5f8586fe36", + "x-ms-date": "Fri, 28 Aug 2020 18:44:02 GMT", + "x-ms-range": "bytes=0-", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 206, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Access-Control-Allow-Origin": "*", + "Content-Length": "512", + "Content-Range": "bytes 0-511/512", + "Content-Type": "application/octet-stream", + "Date": "Fri, 28 Aug 2020 18:44:01 GMT", + "ETag": "\u00220x8D84B82552E842A\u0022", + "Last-Modified": "Fri, 28 Aug 2020 18:44:01 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "cb6b4137-8980-5521-ee4a-ee5f8586fe36", + "x-ms-file-attributes": "Archive", + "x-ms-file-change-time": "2020-08-28T18:44:01.9288297Z", + "x-ms-file-creation-time": "2020-08-28T18:44:01.9288297Z", + "x-ms-file-id": "11529285414812647424", + "x-ms-file-last-write-time": "2020-08-28T18:44:01.9288297Z", + "x-ms-file-parent-id": "13835128424026341376", + "x-ms-file-permission-key": "4010187179898695473*11459378189709739967", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "d7d924c7-801a-0083-1a6b-7dc4a0000000", + "x-ms-server-encrypted": "true", + "x-ms-type": "File", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": "HL4ZV8\u002Bv365MgJgQDcqmIUgiJyNEIbzOUMP8dmDzQjiOn2du3pmmNeibTdF6\u002BAfkkUlby/5alvoCSgYMs2hOWD1ggW5jOEOve/I6qdPqVFe7F\u002BUWl3c5MwhsbJOSmoF/TfWTGnaZgVkGrE8MH\u002B0mF/avUJyDN8HGJk5l9suwHOBwu1veVzrhIZaMEOsnLBMaRlSd40rl/BY0zfMoNIuNVY9vnGSSSMC7zi4F9yfVnvk6Sq93EzmWir5FqolHuO0L/rpbuJCvh/6U4RUb4AXuXi757unbFkJW2RGlTZ02dBVA\u002BvhseeZoi8Kx4jEjeqq5VktbTcoEL\u002Bh4Bd5/CTpgXm3/2uUMguVIkGImKTMQMl9m7PZR2yZLPMoQ83QH6YGIUYTDJJ/FrdRmErxn3Qa0Z9J/GBxDD4JGtJ4a\u002B45xQafhntivTQ6/oT8i6shq417EXIyhh9FkREEBfW8BqrFF9dAVhj8uBBrDwHbdISS63NE/Vp8Cz7rVfFmWrc\u002BfvveO3PX3VVwelldx3sZahyMdR6GewVMSQyUWPwrml1dKIwJ\u002BT0QuwoZ0IcBHkPHze/U1eWYuAfyke5jP4RVSN/4AJ7rE2zff7oUaKaCSyrM0I8QVsB7xGyIF2tOrXuFxIunCR2g2Lp\u002B9VovhFNhbEbHkm71RPIfgDwuXvwBkM4\u002BkqQY=" + }, + { + "RequestUri": "https://seanmcccanary3.file.core.windows.net/test-share-8fed9a3d-56e5-27c3-546a-aede677099a1?restype=share", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-37172c62260ced4f85a6d3d5876650c9-8b837e3510e2fc4b-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200828.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "17665951-30b7-e2bc-b04e-51e3aa3e43a6", + "x-ms-date": "Fri, 28 Aug 2020 18:44:02 GMT", + "x-ms-delete-snapshots": "include", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 28 Aug 2020 18:44:01 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "17665951-30b7-e2bc-b04e-51e3aa3e43a6", + "x-ms-request-id": "d7d924c8-801a-0083-1b6b-7dc4a0000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "69714351", + "Storage_TestConfigDefault": "ProductionTenant\nseanmcccanary3\nU2FuaXRpemVk\nhttps://seanmcccanary3.blob.core.windows.net\nhttps://seanmcccanary3.file.core.windows.net\nhttps://seanmcccanary3.queue.core.windows.net\nhttps://seanmcccanary3.table.core.windows.net\n\n\n\n\nhttps://seanmcccanary3-secondary.blob.core.windows.net\nhttps://seanmcccanary3-secondary.file.core.windows.net\nhttps://seanmcccanary3-secondary.queue.core.windows.net\nhttps://seanmcccanary3-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seanmcccanary3.blob.core.windows.net/;QueueEndpoint=https://seanmcccanary3.queue.core.windows.net/;FileEndpoint=https://seanmcccanary3.file.core.windows.net/;BlobSecondaryEndpoint=https://seanmcccanary3-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seanmcccanary3-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seanmcccanary3-secondary.file.core.windows.net/;AccountName=seanmcccanary3;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadRangeAsync_NonZeroStreamPositionAsync.json b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadRangeAsync_NonZeroStreamPositionAsync.json new file mode 100644 index 0000000000000..5df79bd183414 --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/UploadRangeAsync_NonZeroStreamPositionAsync.json @@ -0,0 +1,246 @@ +{ + "Entries": [ + { + "RequestUri": "https://seanmcccanary3.file.core.windows.net/test-share-321ae1e4-5907-55a3-e38f-6da2e31bcb6f?restype=share", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-9b57b947c4c34142849810e5e56d2dfe-367a18ad27c35342-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200828.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "3fb5d33b-c2fc-4365-f12c-57ca1411cbe3", + "x-ms-date": "Fri, 28 Aug 2020 18:44:02 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 28 Aug 2020 18:44:02 GMT", + "ETag": "\u00220x8D84B82558E2987\u0022", + "Last-Modified": "Fri, 28 Aug 2020 18:44:02 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "3fb5d33b-c2fc-4365-f12c-57ca1411cbe3", + "x-ms-request-id": "e704f5be-a01a-0002-5c6b-7d647a000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seanmcccanary3.file.core.windows.net/test-share-321ae1e4-5907-55a3-e38f-6da2e31bcb6f/test-directory-818af530-3339-5c42-efa8-770602633aae?restype=directory", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-87898cc798a4e4408089eff25fe43aa0-edccb444a666fe44-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200828.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "250f7335-90a9-076d-9159-50544b5f418d", + "x-ms-date": "Fri, 28 Aug 2020 18:44:03 GMT", + "x-ms-file-attributes": "None", + "x-ms-file-creation-time": "Now", + "x-ms-file-last-write-time": "Now", + "x-ms-file-permission": "Inherit", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 28 Aug 2020 18:44:02 GMT", + "ETag": "\u00220x8D84B8255959649\u0022", + "Last-Modified": "Fri, 28 Aug 2020 18:44:02 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "250f7335-90a9-076d-9159-50544b5f418d", + "x-ms-file-attributes": "Directory", + "x-ms-file-change-time": "2020-08-28T18:44:02.6623561Z", + "x-ms-file-creation-time": "2020-08-28T18:44:02.6623561Z", + "x-ms-file-id": "13835128424026341376", + "x-ms-file-last-write-time": "2020-08-28T18:44:02.6623561Z", + "x-ms-file-parent-id": "0", + "x-ms-file-permission-key": "17860367565182308406*11459378189709739967", + "x-ms-request-id": "e704f5c1-a01a-0002-5d6b-7d647a000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seanmcccanary3.file.core.windows.net/test-share-321ae1e4-5907-55a3-e38f-6da2e31bcb6f/test-directory-818af530-3339-5c42-efa8-770602633aae/test-file-4d4da8f2-bbaa-a47d-8266-fc0dc4902bc8", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-0b273d647cc8fd42b45b2aa25aa72ada-6a5adcc7c1121d46-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200828.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "88bfe1ea-0fd9-7aff-f56b-a34394604200", + "x-ms-content-length": "512", + "x-ms-date": "Fri, 28 Aug 2020 18:44:03 GMT", + "x-ms-file-attributes": "None", + "x-ms-file-creation-time": "Now", + "x-ms-file-last-write-time": "Now", + "x-ms-file-permission": "Inherit", + "x-ms-return-client-request-id": "true", + "x-ms-type": "file", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 28 Aug 2020 18:44:02 GMT", + "ETag": "\u00220x8D84B82559D38D1\u0022", + "Last-Modified": "Fri, 28 Aug 2020 18:44:02 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "88bfe1ea-0fd9-7aff-f56b-a34394604200", + "x-ms-file-attributes": "Archive", + "x-ms-file-change-time": "2020-08-28T18:44:02.7123921Z", + "x-ms-file-creation-time": "2020-08-28T18:44:02.7123921Z", + "x-ms-file-id": "11529285414812647424", + "x-ms-file-last-write-time": "2020-08-28T18:44:02.7123921Z", + "x-ms-file-parent-id": "13835128424026341376", + "x-ms-file-permission-key": "4010187179898695473*11459378189709739967", + "x-ms-request-id": "e704f5c2-a01a-0002-5e6b-7d647a000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seanmcccanary3.file.core.windows.net/test-share-321ae1e4-5907-55a3-e38f-6da2e31bcb6f/test-directory-818af530-3339-5c42-efa8-770602633aae/test-file-4d4da8f2-bbaa-a47d-8266-fc0dc4902bc8?comp=range", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "512", + "traceparent": "00-92fe4e08a0ef2a409ed03d86b6f0a1f1-1447675d7bdb8b4d-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200828.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "47191440-3418-3873-3c9e-ec9a6fa650d3", + "x-ms-date": "Fri, 28 Aug 2020 18:44:03 GMT", + "x-ms-range": "bytes=0-511", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12", + "x-ms-write": "update" + }, + "RequestBody": "/Da9YAOJ3OMrCWlR/yaDSBBEmeUD/i5Ji5zNq0rRxXLxipAfLfpqSNwVDJ8QmuUcaJylRCb/GP4IdNVmuzCZWkP3X3SWYxsV2VAI7vGOOfG3sUKtK4FL8nKRF7klA42se7JbGTpxhgWAj2rV9yoNeTrjrwrt6y/Cq20CBUxi8NXDXHI/MyC2RSs9LZsXdftHg51\u002BQVSDvo\u002BCmW3Nb4C5HZ\u002BUEpq3zkYaLGnfsL6TqjZxuoGu5K6BP57jvJqy6daqgw/7gmJgj7VXYxXqpA3Q7\u002B43W7T/CjnxEtL81BKraEOSNCyvlyfTESrMV4GZlpuQEsyre40iq3nWCnCPY7ujq/vRWG/hIVfHZEqKM7O4WHw3bMJFAO22cImz2Y23Q61vKKuGxz4rrvB15BdCmHfFHrLzWPf4XasNG\u002BfmLUjKDyCcGgoHMpA9C73R0BvWc9gR7rvaw\u002Bu2dssAeKxWRYGoqtX2pn1tvewitUw5J42PN6gP1D\u002BN70s05qQ/B7nk58U8KCVG38xaozDPuA2efE49cEAERnFBG7qJwcDYLrUyPc6H/f5nSFjbtDAPvjc\u002BlmlVAZd54KBU\u002Bg1rvR0MgXV6nHo/F35Q1ifoKJFAMl2DSytWgy0euF0tMgPw/Is6zjK7lCG8/n/qBSpvkbcPE8iw53Lytv5HW\u002BQdEuR7X9qcrlo=", + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Content-MD5": "6/HrNUXRhRVWEDaQbmqm2g==", + "Date": "Fri, 28 Aug 2020 18:44:02 GMT", + "ETag": "\u00220x8D84B8255A3C9B3\u0022", + "Last-Modified": "Fri, 28 Aug 2020 18:44:02 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "47191440-3418-3873-3c9e-ec9a6fa650d3", + "x-ms-request-id": "e704f5c3-a01a-0002-5f6b-7d647a000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://seanmcccanary3.file.core.windows.net/test-share-321ae1e4-5907-55a3-e38f-6da2e31bcb6f/test-directory-818af530-3339-5c42-efa8-770602633aae/test-file-4d4da8f2-bbaa-a47d-8266-fc0dc4902bc8", + "RequestMethod": "GET", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-384eb1634a022248b1580d841d956ae1-8ca614891cbb3a41-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200828.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "c51e40c5-6682-2a41-1165-ff286011fcd7", + "x-ms-date": "Fri, 28 Aug 2020 18:44:03 GMT", + "x-ms-range": "bytes=0-", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 206, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Access-Control-Allow-Origin": "*", + "Content-Length": "512", + "Content-Range": "bytes 0-511/512", + "Content-Type": "application/octet-stream", + "Date": "Fri, 28 Aug 2020 18:44:02 GMT", + "ETag": "\u00220x8D84B8255A3C9B3\u0022", + "Last-Modified": "Fri, 28 Aug 2020 18:44:02 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "c51e40c5-6682-2a41-1165-ff286011fcd7", + "x-ms-file-attributes": "Archive", + "x-ms-file-change-time": "2020-08-28T18:44:02.7123921Z", + "x-ms-file-creation-time": "2020-08-28T18:44:02.7123921Z", + "x-ms-file-id": "11529285414812647424", + "x-ms-file-last-write-time": "2020-08-28T18:44:02.7123921Z", + "x-ms-file-parent-id": "13835128424026341376", + "x-ms-file-permission-key": "4010187179898695473*11459378189709739967", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "e704f5c4-a01a-0002-606b-7d647a000000", + "x-ms-server-encrypted": "true", + "x-ms-type": "File", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": "/Da9YAOJ3OMrCWlR/yaDSBBEmeUD/i5Ji5zNq0rRxXLxipAfLfpqSNwVDJ8QmuUcaJylRCb/GP4IdNVmuzCZWkP3X3SWYxsV2VAI7vGOOfG3sUKtK4FL8nKRF7klA42se7JbGTpxhgWAj2rV9yoNeTrjrwrt6y/Cq20CBUxi8NXDXHI/MyC2RSs9LZsXdftHg51\u002BQVSDvo\u002BCmW3Nb4C5HZ\u002BUEpq3zkYaLGnfsL6TqjZxuoGu5K6BP57jvJqy6daqgw/7gmJgj7VXYxXqpA3Q7\u002B43W7T/CjnxEtL81BKraEOSNCyvlyfTESrMV4GZlpuQEsyre40iq3nWCnCPY7ujq/vRWG/hIVfHZEqKM7O4WHw3bMJFAO22cImz2Y23Q61vKKuGxz4rrvB15BdCmHfFHrLzWPf4XasNG\u002BfmLUjKDyCcGgoHMpA9C73R0BvWc9gR7rvaw\u002Bu2dssAeKxWRYGoqtX2pn1tvewitUw5J42PN6gP1D\u002BN70s05qQ/B7nk58U8KCVG38xaozDPuA2efE49cEAERnFBG7qJwcDYLrUyPc6H/f5nSFjbtDAPvjc\u002BlmlVAZd54KBU\u002Bg1rvR0MgXV6nHo/F35Q1ifoKJFAMl2DSytWgy0euF0tMgPw/Is6zjK7lCG8/n/qBSpvkbcPE8iw53Lytv5HW\u002BQdEuR7X9qcrlo=" + }, + { + "RequestUri": "https://seanmcccanary3.file.core.windows.net/test-share-321ae1e4-5907-55a3-e38f-6da2e31bcb6f?restype=share", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-4c49cf02ccc68844a4bf326498543d6d-0204a1b89bcbd64d-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.4.0-dev.20200828.1", + "(.NET Core 4.6.29017.01; Microsoft Windows 10.0.18362 )" + ], + "x-ms-client-request-id": "2ed5f827-8b87-7c50-1b86-7dc574f8c535", + "x-ms-date": "Fri, 28 Aug 2020 18:44:03 GMT", + "x-ms-delete-snapshots": "include", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2019-12-12" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 28 Aug 2020 18:44:02 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "2ed5f827-8b87-7c50-1b86-7dc574f8c535", + "x-ms-request-id": "e704f5c6-a01a-0002-616b-7d647a000000", + "x-ms-version": "2019-12-12" + }, + "ResponseBody": [] + } + ], + "Variables": { + "RandomSeed": "1407377138", + "Storage_TestConfigDefault": "ProductionTenant\nseanmcccanary3\nU2FuaXRpemVk\nhttps://seanmcccanary3.blob.core.windows.net\nhttps://seanmcccanary3.file.core.windows.net\nhttps://seanmcccanary3.queue.core.windows.net\nhttps://seanmcccanary3.table.core.windows.net\n\n\n\n\nhttps://seanmcccanary3-secondary.blob.core.windows.net\nhttps://seanmcccanary3-secondary.file.core.windows.net\nhttps://seanmcccanary3-secondary.queue.core.windows.net\nhttps://seanmcccanary3-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://seanmcccanary3.blob.core.windows.net/;QueueEndpoint=https://seanmcccanary3.queue.core.windows.net/;FileEndpoint=https://seanmcccanary3.file.core.windows.net/;BlobSecondaryEndpoint=https://seanmcccanary3-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://seanmcccanary3-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://seanmcccanary3-secondary.file.core.windows.net/;AccountName=seanmcccanary3;AccountKey=Kg==;\nseanscope1" + } +} \ No newline at end of file From 19180b4869176ff84eb947cce81b125c6ded8a52 Mon Sep 17 00:00:00 2001 From: Sean McCullough Date: Fri, 28 Aug 2020 14:43:24 -0500 Subject: [PATCH 09/10] simplified logic --- .../src/BlockBlobClient.cs | 4 ++-- .../src/Shared/PartitionedUploader.cs | 22 ++++++++----------- .../src/DataLakeFileClient.cs | 4 ++-- 3 files changed, 13 insertions(+), 17 deletions(-) diff --git a/sdk/storage/Azure.Storage.Blobs/src/BlockBlobClient.cs b/sdk/storage/Azure.Storage.Blobs/src/BlockBlobClient.cs index ec143c824b932..faba364b571e6 100644 --- a/sdk/storage/Azure.Storage.Blobs/src/BlockBlobClient.cs +++ b/sdk/storage/Azure.Storage.Blobs/src/BlockBlobClient.cs @@ -2193,9 +2193,9 @@ internal static PartitionedUploader.Behavior progressHandler, async, cancellationToken).ConfigureAwait(false), - CommitPartitionedUpload = async (partitions, initialPosition, args, async, cancellationToken) + CommitPartitionedUpload = async (partitions, args, async, cancellationToken) => await client.CommitBlockListInternal( - partitions.Select(partition => StorageExtensions.GenerateBlockId(partition.Offset - initialPosition)), + partitions.Select(partition => StorageExtensions.GenerateBlockId(partition.Offset)), args.HttpHeaders, args.Metadata, args.Tags, diff --git a/sdk/storage/Azure.Storage.Common/src/Shared/PartitionedUploader.cs b/sdk/storage/Azure.Storage.Common/src/Shared/PartitionedUploader.cs index 13efc058ef379..e2b5ac2c9f2ad 100644 --- a/sdk/storage/Azure.Storage.Common/src/Shared/PartitionedUploader.cs +++ b/sdk/storage/Azure.Storage.Common/src/Shared/PartitionedUploader.cs @@ -43,7 +43,6 @@ public delegate Task UploadPartitionInternal(Stream contentStream, CancellationToken cancellationToken); public delegate Task> CommitPartitionedUploadInternal( List<(long Offset, long Size)> partitions, - long initialPosition, TServiceSpecificArgs args, bool async, CancellationToken cancellationToken); @@ -158,6 +157,13 @@ public async Task> UploadInternal( throw Errors.ArgumentNull(nameof(content)); } + Errors.VerifyStreamPosition(content, nameof(content)); + + if (content.Position > 0) + { + content = WindowStream.GetWindow(content, content.Length - content.Position, content.Position); + } + await _initializeDestinationInternal(args, async, cancellationToken).ConfigureAwait(false); // some strategies are unavailable if we don't know the stream length, and some can still work @@ -256,10 +262,6 @@ private async Task> UploadInSequenceInternal( ? (GetNextStreamPartition)GetStreamedPartitionInternal : /* redundant cast */GetBufferedPartitionInternal; - // If the stream is not starting from position 0, we want to shift the offsets we are sending - // to the backend back by the inital position. - long initialPosition = content.CanSeek ? content.Position : 0; - // Partition the stream into individual blocks and stage them if (async) { @@ -273,7 +275,7 @@ private async Task> UploadInSequenceInternal( { await StagePartitionAndDisposeInternal( block, - block.AbsolutePosition - initialPosition, + block.AbsolutePosition, args, progressHandler, async: true, @@ -294,7 +296,7 @@ await StagePartitionAndDisposeInternal( { StagePartitionAndDisposeInternal( block, - block.AbsolutePosition - initialPosition, + block.AbsolutePosition, args, progressHandler, async: false, @@ -308,7 +310,6 @@ await StagePartitionAndDisposeInternal( // complete the upload return await _commitPartitionedUploadInternal( partitions, - initialPosition, args, async, cancellationToken).ConfigureAwait(false); @@ -349,10 +350,6 @@ private async Task> UploadInParallelAsync( // The list tracking blocks IDs we're going to commit List<(long Offset, long Size)> partitions = new List<(long, long)>(); - // If the stream's initial position is not 0, we want to shift the offsets we are - // reporting to the service back by the inital offset. - long initialPosition = content.CanSeek ? content.Position : 0; - // A list of tasks that are currently executing which will // always be smaller than _maxWorkerCount List runningTasks = new List(); @@ -412,7 +409,6 @@ private async Task> UploadInParallelAsync( // Calling internal method for easier mocking in PartitionedUploaderTests return await _commitPartitionedUploadInternal( partitions, - initialPosition: 0, args, async: true, cancellationToken) diff --git a/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeFileClient.cs b/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeFileClient.cs index 6c6770d1eec6f..7170d84c804aa 100644 --- a/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeFileClient.cs +++ b/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeFileClient.cs @@ -4213,7 +4213,7 @@ await client.AppendInternal( progressHandler, async, cancellationToken).ConfigureAwait(false), - CommitPartitionedUpload = async (partitions, initialPosition, args, async, cancellationToken) => + CommitPartitionedUpload = async (partitions, args, async, cancellationToken) => { (var offset, var size) = partitions.LastOrDefault(); @@ -4222,7 +4222,7 @@ await client.AppendInternal( args.Conditions = new DataLakeRequestConditions { LeaseId = args.Conditions.LeaseId }; return await client.FlushInternal( - offset + size - initialPosition, + offset + size, retainUncommittedData: default, close: default, httpHeaders: args.HttpHeaders, From 7a928b0290614f3ca6d652982d13ade222143b8b Mon Sep 17 00:00:00 2001 From: Sean McCullough Date: Mon, 31 Aug 2020 14:39:40 -0500 Subject: [PATCH 10/10] Fixed CI --- .../Azure.Storage.Common/src/Shared/PartitionedUploader.cs | 2 +- .../Azure.Storage.Common/tests/PartitionedUploaderTests.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/storage/Azure.Storage.Common/src/Shared/PartitionedUploader.cs b/sdk/storage/Azure.Storage.Common/src/Shared/PartitionedUploader.cs index e2b5ac2c9f2ad..9d6502888fc14 100644 --- a/sdk/storage/Azure.Storage.Common/src/Shared/PartitionedUploader.cs +++ b/sdk/storage/Azure.Storage.Common/src/Shared/PartitionedUploader.cs @@ -159,7 +159,7 @@ public async Task> UploadInternal( Errors.VerifyStreamPosition(content, nameof(content)); - if (content.Position > 0) + if (content.CanSeek && content.Position > 0) { content = WindowStream.GetWindow(content, content.Length - content.Position, content.Position); } diff --git a/sdk/storage/Azure.Storage.Common/tests/PartitionedUploaderTests.cs b/sdk/storage/Azure.Storage.Common/tests/PartitionedUploaderTests.cs index a2d7ff1c0860b..bee6a221908af 100644 --- a/sdk/storage/Azure.Storage.Common/tests/PartitionedUploaderTests.cs +++ b/sdk/storage/Azure.Storage.Common/tests/PartitionedUploaderTests.cs @@ -84,7 +84,7 @@ public PartitionedUploaderTests(bool async) private Mock.CommitPartitionedUploadInternal> GetMockCommitPartitionedUploadInternal() { var mock = new Mock.CommitPartitionedUploadInternal>(MockBehavior.Strict); - mock.Setup(del => del(It.IsNotNull>(),It.IsAny(), s_objectArgs, IsAsync, s_cancellation)) + mock.Setup(del => del(It.IsNotNull>(), s_objectArgs, IsAsync, s_cancellation)) .Returns(Task.FromResult(new Mock>(MockBehavior.Loose).Object)); return mock;