From 9cd360e6291e68e9a4b4659266709598653f6bf4 Mon Sep 17 00:00:00 2001 From: Kamil Sobol <61715331+kasobol-msft@users.noreply.github.com> Date: Mon, 11 Jan 2021 14:51:58 -0800 Subject: [PATCH] [Storage] SAS Credential in Storage. (#17646) * Add AzureSasCredential * corner case. * api. * core as project ref (todo undo this) * first client. * hack azure core in webjobs for now. * api. * constructors. * blob tests. * datalake tests. * share tests + take out sas on share and service clients as there isn't much APIs that would work with sas there. * queues tests. * well that works. nvm. * remarks. * error message. * predicate shouldn't be optional. * post-merge tweaks. * message about right UriBuilder. * added uri validation. * changelog. * user delegation sas change. * batch. * this test doesn't work well in playback mode. * pr feedback. * comments. * validation. * undo project references workaround. * undo webjobs project ref workaround. --- .../tests/BlobBatchClientTests.cs | 18 ++ ...Storage.Blobs.ChangeFeed.netstandard2.0.cs | 1 + .../src/BlobChangeFeedClient.cs | 25 +++ sdk/storage/Azure.Storage.Blobs/CHANGELOG.md | 1 + .../api/Azure.Storage.Blobs.netstandard2.0.cs | 7 + .../src/AppendBlobClient.cs | 28 +++ .../src/Azure.Storage.Blobs.csproj | 2 + .../Azure.Storage.Blobs/src/BlobBaseClient.cs | 28 +++ .../Azure.Storage.Blobs/src/BlobClient.cs | 27 +++ .../src/BlobContainerClient.cs | 27 +++ .../src/BlobServiceClient.cs | 26 +++ .../src/BlockBlobClient.cs | 27 +++ .../Azure.Storage.Blobs/src/PageBlobClient.cs | 27 +++ .../tests/AppendBlobClientTests.cs | 34 ++++ .../tests/BlobBaseClientTests.cs | 63 +++++- .../tests/BlobClientTests.cs | 34 ++++ .../tests/BlockBlobClientTests.cs | 33 ++++ .../tests/ContainerClientTests.cs | 31 +++ .../tests/PageBlobClientTests.cs | 34 ++++ .../tests/ServiceClientTests.cs | 31 +++ .../Ctor_AzureSasCredential.json | 146 ++++++++++++++ .../Ctor_AzureSasCredentialAsync.json | 146 ++++++++++++++ ...r_AzureSasCredential_VerifyNoSasInUri.json | 72 +++++++ ...reSasCredential_VerifyNoSasInUriAsync.json | 72 +++++++ .../Ctor_AzureSasCredential.json | 151 +++++++++++++++ .../Ctor_AzureSasCredentialAsync.json | 151 +++++++++++++++ ..._AzureSasCredential_UserDelegationSAS.json | 179 ++++++++++++++++++ ...eSasCredential_UserDelegationSASAsync.json | 179 ++++++++++++++++++ ...r_AzureSasCredential_VerifyNoSasInUri.json | 72 +++++++ ...reSasCredential_VerifyNoSasInUriAsync.json | 72 +++++++ .../Ctor_AzureSasCredential.json | 151 +++++++++++++++ .../Ctor_AzureSasCredentialAsync.json | 151 +++++++++++++++ ...r_AzureSasCredential_VerifyNoSasInUri.json | 72 +++++++ ...reSasCredential_VerifyNoSasInUriAsync.json | 72 +++++++ .../Ctor_AzureSasCredential.json | 151 +++++++++++++++ .../Ctor_AzureSasCredentialAsync.json | 151 +++++++++++++++ ...r_AzureSasCredential_VerifyNoSasInUri.json | 72 +++++++ ...reSasCredential_VerifyNoSasInUriAsync.json | 72 +++++++ .../Ctor_AzureSasCredential.json | 110 +++++++++++ .../Ctor_AzureSasCredentialAsync.json | 110 +++++++++++ ...r_AzureSasCredential_VerifyNoSasInUri.json | 76 ++++++++ ...reSasCredential_VerifyNoSasInUriAsync.json | 72 +++++++ .../Ctor_AzureSasCredential.json | 147 ++++++++++++++ .../Ctor_AzureSasCredentialAsync.json | 147 ++++++++++++++ ...r_AzureSasCredential_VerifyNoSasInUri.json | 72 +++++++ ...reSasCredential_VerifyNoSasInUriAsync.json | 72 +++++++ .../Ctor_AzureSasCredential.json | 102 ++++++++++ .../Ctor_AzureSasCredentialAsync.json | 102 ++++++++++ ...r_AzureSasCredential_VerifyNoSasInUri.json | 72 +++++++ ...reSasCredential_VerifyNoSasInUriAsync.json | 72 +++++++ .../src/Shared/Errors.Clients.cs | 6 + .../src/Shared/StorageClientOptions.cs | 19 +- .../tests/Shared/TestHelper.cs | 21 +- .../Azure.Storage.Files.DataLake/CHANGELOG.md | 1 + ...e.Storage.Files.DataLake.netstandard2.0.cs | 10 + .../src/Azure.Storage.Files.DataLake.csproj | 1 + .../src/DataLakeDirectoryClient.cs | 47 +++++ .../src/DataLakeFileClient.cs | 45 +++++ .../src/DataLakeFileSystemClient.cs | 46 +++++ .../src/DataLakePathClient.cs | 48 +++++ .../src/DataLakeServiceClient.cs | 44 +++++ .../tests/DirectoryClientTests.cs | 33 ++++ .../tests/FileClientTests.cs | 33 ++++ .../tests/FileSystemClientTests.cs | 31 +++ .../tests/ServiceClientTests.cs | 29 +++ .../Ctor_AzureSasCredential.json | 145 ++++++++++++++ .../Ctor_AzureSasCredentialAsync.json | 145 ++++++++++++++ ...r_AzureSasCredential_VerifyNoSasInUri.json | 72 +++++++ ...reSasCredential_VerifyNoSasInUriAsync.json | 72 +++++++ .../Ctor_AzureSasCredential.json | 144 ++++++++++++++ .../Ctor_AzureSasCredentialAsync.json | 144 ++++++++++++++ ...r_AzureSasCredential_VerifyNoSasInUri.json | 72 +++++++ ...reSasCredential_VerifyNoSasInUriAsync.json | 72 +++++++ .../Ctor_AzureSasCredential.json | 109 +++++++++++ .../Ctor_AzureSasCredentialAsync.json | 109 +++++++++++ ...r_AzureSasCredential_VerifyNoSasInUri.json | 72 +++++++ ...reSasCredential_VerifyNoSasInUriAsync.json | 72 +++++++ .../Ctor_AzureSasCredential.json | 37 ++++ .../Ctor_AzureSasCredentialAsync.json | 37 ++++ ...r_AzureSasCredential_VerifyNoSasInUri.json | 8 + ...reSasCredential_VerifyNoSasInUriAsync.json | 8 + .../Azure.Storage.Files.Shares/CHANGELOG.md | 1 + ...ure.Storage.Files.Shares.netstandard2.0.cs | 4 + .../src/Azure.Storage.Files.Shares.csproj | 2 + .../src/ShareClient.cs | 26 +++ .../src/ShareDirectoryClient.cs | 27 +++ .../src/ShareFileClient.cs | 26 +++ .../src/ShareServiceClient.cs | 25 +++ .../tests/DirectoryClientTests.cs | 33 ++++ .../tests/FileClientTests.cs | 33 ++++ .../tests/FileTestBase.cs | 10 +- .../tests/ServiceClientTests.cs | 29 +++ .../Ctor_AzureSasCredential.json | 155 +++++++++++++++ .../Ctor_AzureSasCredentialAsync.json | 155 +++++++++++++++ ...r_AzureSasCredential_VerifyNoSasInUri.json | 72 +++++++ ...reSasCredential_VerifyNoSasInUriAsync.json | 72 +++++++ .../Ctor_AzureSasCredential.json | 161 ++++++++++++++++ .../Ctor_AzureSasCredentialAsync.json | 161 ++++++++++++++++ ...r_AzureSasCredential_VerifyNoSasInUri.json | 72 +++++++ ...reSasCredential_VerifyNoSasInUriAsync.json | 72 +++++++ .../Ctor_AzureSasCredential.json | 39 ++++ .../Ctor_AzureSasCredentialAsync.json | 39 ++++ ...r_AzureSasCredential_VerifyNoSasInUri.json | 8 + ...reSasCredential_VerifyNoSasInUriAsync.json | 8 + .../Ctor_AzureSasCredential.json | 108 +++++++++++ .../Ctor_AzureSasCredentialAsync.json | 108 +++++++++++ ...r_AzureSasCredential_VerifyNoSasInUri.json | 72 +++++++ ...reSasCredential_VerifyNoSasInUriAsync.json | 72 +++++++ .../tests/ShareClientTests.cs | 31 +++ sdk/storage/Azure.Storage.Queues/CHANGELOG.md | 2 +- .../Azure.Storage.Queues.netstandard2.0.cs | 2 + .../src/Azure.Storage.Queues.csproj | 2 + .../Azure.Storage.Queues/src/QueueClient.cs | 27 +++ .../src/QueueServiceClient.cs | 26 +++ .../tests/QueueClientTests.cs | 31 +++ .../tests/QueueTestBase.cs | 8 +- .../tests/ServiceClientTests.cs | 30 +++ .../Ctor_AzureSasCredential.json | 97 ++++++++++ .../Ctor_AzureSasCredentialAsync.json | 97 ++++++++++ ...r_AzureSasCredential_VerifyNoSasInUri.json | 67 +++++++ ...reSasCredential_VerifyNoSasInUriAsync.json | 67 +++++++ .../Ctor_AzureSasCredential.json | 97 ++++++++++ .../Ctor_AzureSasCredentialAsync.json | 97 ++++++++++ ...r_AzureSasCredential_VerifyNoSasInUri.json | 8 + ...reSasCredential_VerifyNoSasInUriAsync.json | 8 + 125 files changed, 7795 insertions(+), 14 deletions(-) create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/Ctor_AzureSasCredential.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/Ctor_AzureSasCredentialAsync.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobBaseClientTests/Ctor_AzureSasCredential.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobBaseClientTests/Ctor_AzureSasCredentialAsync.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobBaseClientTests/Ctor_AzureSasCredential_UserDelegationSAS.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobBaseClientTests/Ctor_AzureSasCredential_UserDelegationSASAsync.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobBaseClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobBaseClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/Ctor_AzureSasCredential.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/Ctor_AzureSasCredentialAsync.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/Ctor_AzureSasCredential.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/Ctor_AzureSasCredentialAsync.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ContainerClientTests/Ctor_AzureSasCredential.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ContainerClientTests/Ctor_AzureSasCredentialAsync.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ContainerClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ContainerClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/Ctor_AzureSasCredential.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/Ctor_AzureSasCredentialAsync.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredentialAsync.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json create mode 100644 sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json create mode 100644 sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredential.json create mode 100644 sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredentialAsync.json create mode 100644 sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json create mode 100644 sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json create mode 100644 sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredential.json create mode 100644 sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredentialAsync.json create mode 100644 sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json create mode 100644 sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json create mode 100644 sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileSystemClientTests/Ctor_AzureSasCredential.json create mode 100644 sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileSystemClientTests/Ctor_AzureSasCredentialAsync.json create mode 100644 sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileSystemClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json create mode 100644 sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileSystemClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json create mode 100644 sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential.json create mode 100644 sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredentialAsync.json create mode 100644 sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json create mode 100644 sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json create mode 100644 sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredential.json create mode 100644 sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredentialAsync.json create mode 100644 sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json create mode 100644 sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json create mode 100644 sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredential.json create mode 100644 sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredentialAsync.json create mode 100644 sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json create mode 100644 sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json create mode 100644 sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential.json create mode 100644 sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredentialAsync.json create mode 100644 sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json create mode 100644 sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json create mode 100644 sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ShareClientTests/Ctor_AzureSasCredential.json create mode 100644 sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ShareClientTests/Ctor_AzureSasCredentialAsync.json create mode 100644 sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ShareClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json create mode 100644 sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ShareClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json create mode 100644 sdk/storage/Azure.Storage.Queues/tests/SessionRecords/QueueClientTests/Ctor_AzureSasCredential.json create mode 100644 sdk/storage/Azure.Storage.Queues/tests/SessionRecords/QueueClientTests/Ctor_AzureSasCredentialAsync.json create mode 100644 sdk/storage/Azure.Storage.Queues/tests/SessionRecords/QueueClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json create mode 100644 sdk/storage/Azure.Storage.Queues/tests/SessionRecords/QueueClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json create mode 100644 sdk/storage/Azure.Storage.Queues/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential.json create mode 100644 sdk/storage/Azure.Storage.Queues/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredentialAsync.json create mode 100644 sdk/storage/Azure.Storage.Queues/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json create mode 100644 sdk/storage/Azure.Storage.Queues/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json diff --git a/sdk/storage/Azure.Storage.Blobs.Batch/tests/BlobBatchClientTests.cs b/sdk/storage/Azure.Storage.Blobs.Batch/tests/BlobBatchClientTests.cs index 6c11da0c6d7b..4a7c13577248 100644 --- a/sdk/storage/Azure.Storage.Blobs.Batch/tests/BlobBatchClientTests.cs +++ b/sdk/storage/Azure.Storage.Blobs.Batch/tests/BlobBatchClientTests.cs @@ -208,6 +208,24 @@ public async Task Batch_SasUri_NotOwner() Assert.AreEqual(403, ex.Status); } + [Test] + [LiveOnly] + public async Task Batch_AzureSasCredential() + { + // Create a container using SAS for Auth + await using DisposingContainer test = await GetTestContainerAsync(); + + var serviceClient = GetServiceClient_SharedKey(); + var sas = GetAccountSasCredentials().SasToken; + var sasServiceClient = InstrumentClient(new BlobServiceClient(serviceClient.Uri, new AzureSasCredential(sas), GetOptions())); + await using TestScenario scenario = Scenario(sasServiceClient); + Uri[] blobs = await scenario.CreateBlobUrisAsync(test.Container, 2); + BlobBatchClient client = scenario.GetBlobBatchClient(); + Response[] responses = await client.DeleteBlobsAsync(blobs); + + scenario.AssertStatus(202, responses); + } + // TODO: Add a requirement that one of the test tenants is in a // different account so we can verify batch requests fail across // multiple storage accounts diff --git a/sdk/storage/Azure.Storage.Blobs.ChangeFeed/api/Azure.Storage.Blobs.ChangeFeed.netstandard2.0.cs b/sdk/storage/Azure.Storage.Blobs.ChangeFeed/api/Azure.Storage.Blobs.ChangeFeed.netstandard2.0.cs index b865063e4a1c..d2f973c01ebb 100644 --- a/sdk/storage/Azure.Storage.Blobs.ChangeFeed/api/Azure.Storage.Blobs.ChangeFeed.netstandard2.0.cs +++ b/sdk/storage/Azure.Storage.Blobs.ChangeFeed/api/Azure.Storage.Blobs.ChangeFeed.netstandard2.0.cs @@ -5,6 +5,7 @@ public partial class BlobChangeFeedClient protected BlobChangeFeedClient() { } public BlobChangeFeedClient(string connectionString) { } public BlobChangeFeedClient(string connectionString, Azure.Storage.Blobs.BlobClientOptions options) { } + public BlobChangeFeedClient(System.Uri serviceUri, Azure.AzureSasCredential credential, Azure.Storage.Blobs.BlobClientOptions options = null) { } public BlobChangeFeedClient(System.Uri serviceUri, Azure.Core.TokenCredential credential, Azure.Storage.Blobs.BlobClientOptions options = null) { } public BlobChangeFeedClient(System.Uri serviceUri, Azure.Storage.Blobs.BlobClientOptions options = null) { } public BlobChangeFeedClient(System.Uri serviceUri, Azure.Storage.StorageSharedKeyCredential credential, Azure.Storage.Blobs.BlobClientOptions options = null) { } diff --git a/sdk/storage/Azure.Storage.Blobs.ChangeFeed/src/BlobChangeFeedClient.cs b/sdk/storage/Azure.Storage.Blobs.ChangeFeed/src/BlobChangeFeedClient.cs index f5ada5deee13..ca8c2d582dc7 100644 --- a/sdk/storage/Azure.Storage.Blobs.ChangeFeed/src/BlobChangeFeedClient.cs +++ b/sdk/storage/Azure.Storage.Blobs.ChangeFeed/src/BlobChangeFeedClient.cs @@ -111,6 +111,31 @@ public BlobChangeFeedClient(Uri serviceUri, StorageSharedKeyCredential credentia _blobServiceClient = new BlobServiceClient(serviceUri, credential, options); } + /// + /// Initializes a new instance of the + /// class. + /// + /// + /// A referencing the blob service. + /// This is likely to be similar to "https://{account_name}.blob.core.windows.net". + /// Must not contain shared access signature, which should be passed in the second parameter. + /// + /// + /// The shared access signature credential used to sign requests. + /// + /// + /// Optional client options that define the transport pipeline + /// policies for authentication, retries, etc., that are applied to + /// every request. + /// + /// + /// This constructor should only be used when shared access signature needs to be updated during lifespan of this client. + /// + public BlobChangeFeedClient(Uri serviceUri, AzureSasCredential credential, BlobClientOptions options = default) + { + _blobServiceClient = new BlobServiceClient(serviceUri, credential, options); + } + /// /// Initializes a new instance of the /// class. diff --git a/sdk/storage/Azure.Storage.Blobs/CHANGELOG.md b/sdk/storage/Azure.Storage.Blobs/CHANGELOG.md index 1831cc4ca348..8692585a8719 100644 --- a/sdk/storage/Azure.Storage.Blobs/CHANGELOG.md +++ b/sdk/storage/Azure.Storage.Blobs/CHANGELOG.md @@ -3,6 +3,7 @@ ## 12.8.0-beta.2 (Unreleased) - Fixed bug where the Stream returned by BlobBaseClient.OpenRead() would return a different Length after calls to Seek(). - Fixed bug where BlobBaseClient.Exists() did not function correctly for blob encrypted with Customer Provided Key or Encryption Scope. +- Added support for AzureSasCredential. That allows SAS rotation for long living clients. ## 12.8.0-beta.1 (2020-12-07) - Added support for service version 2020-04-08. diff --git a/sdk/storage/Azure.Storage.Blobs/api/Azure.Storage.Blobs.netstandard2.0.cs b/sdk/storage/Azure.Storage.Blobs/api/Azure.Storage.Blobs.netstandard2.0.cs index b8dda3af5a3b..5853aa3df98d 100644 --- a/sdk/storage/Azure.Storage.Blobs/api/Azure.Storage.Blobs.netstandard2.0.cs +++ b/sdk/storage/Azure.Storage.Blobs/api/Azure.Storage.Blobs.netstandard2.0.cs @@ -5,6 +5,7 @@ public partial class BlobClient : Azure.Storage.Blobs.Specialized.BlobBaseClient protected BlobClient() { } public BlobClient(string connectionString, string blobContainerName, string blobName) { } public BlobClient(string connectionString, string blobContainerName, string blobName, Azure.Storage.Blobs.BlobClientOptions options) { } + public BlobClient(System.Uri blobUri, Azure.AzureSasCredential credential, Azure.Storage.Blobs.BlobClientOptions options = null) { } public BlobClient(System.Uri blobUri, Azure.Core.TokenCredential credential, Azure.Storage.Blobs.BlobClientOptions options = null) { } public BlobClient(System.Uri blobUri, Azure.Storage.Blobs.BlobClientOptions options = null) { } public BlobClient(System.Uri blobUri, Azure.Storage.StorageSharedKeyCredential credential, Azure.Storage.Blobs.BlobClientOptions options = null) { } @@ -60,6 +61,7 @@ public partial class BlobContainerClient protected BlobContainerClient() { } public BlobContainerClient(string connectionString, string blobContainerName) { } public BlobContainerClient(string connectionString, string blobContainerName, Azure.Storage.Blobs.BlobClientOptions options) { } + public BlobContainerClient(System.Uri blobContainerUri, Azure.AzureSasCredential credential, Azure.Storage.Blobs.BlobClientOptions options = null) { } public BlobContainerClient(System.Uri blobContainerUri, Azure.Core.TokenCredential credential, Azure.Storage.Blobs.BlobClientOptions options = null) { } public BlobContainerClient(System.Uri blobContainerUri, Azure.Storage.Blobs.BlobClientOptions options = null) { } public BlobContainerClient(System.Uri blobContainerUri, Azure.Storage.StorageSharedKeyCredential credential, Azure.Storage.Blobs.BlobClientOptions options = null) { } @@ -119,6 +121,7 @@ public partial class BlobServiceClient protected BlobServiceClient() { } public BlobServiceClient(string connectionString) { } public BlobServiceClient(string connectionString, Azure.Storage.Blobs.BlobClientOptions options) { } + public BlobServiceClient(System.Uri serviceUri, Azure.AzureSasCredential credential, Azure.Storage.Blobs.BlobClientOptions options = null) { } public BlobServiceClient(System.Uri serviceUri, Azure.Core.TokenCredential credential, Azure.Storage.Blobs.BlobClientOptions options = null) { } public BlobServiceClient(System.Uri serviceUri, Azure.Storage.Blobs.BlobClientOptions options = null) { } public BlobServiceClient(System.Uri serviceUri, Azure.Storage.StorageSharedKeyCredential credential, Azure.Storage.Blobs.BlobClientOptions options = null) { } @@ -1224,6 +1227,7 @@ public partial class AppendBlobClient : Azure.Storage.Blobs.Specialized.BlobBase protected AppendBlobClient() { } public AppendBlobClient(string connectionString, string blobContainerName, string blobName) { } public AppendBlobClient(string connectionString, string blobContainerName, string blobName, Azure.Storage.Blobs.BlobClientOptions options) { } + public AppendBlobClient(System.Uri blobUri, Azure.AzureSasCredential credential, Azure.Storage.Blobs.BlobClientOptions options = null) { } public AppendBlobClient(System.Uri blobUri, Azure.Core.TokenCredential credential, Azure.Storage.Blobs.BlobClientOptions options = null) { } public AppendBlobClient(System.Uri blobUri, Azure.Storage.Blobs.BlobClientOptions options = null) { } public AppendBlobClient(System.Uri blobUri, Azure.Storage.StorageSharedKeyCredential credential, Azure.Storage.Blobs.BlobClientOptions options = null) { } @@ -1257,6 +1261,7 @@ public partial class BlobBaseClient protected BlobBaseClient() { } public BlobBaseClient(string connectionString, string blobContainerName, string blobName) { } public BlobBaseClient(string connectionString, string blobContainerName, string blobName, Azure.Storage.Blobs.BlobClientOptions options) { } + public BlobBaseClient(System.Uri blobUri, Azure.AzureSasCredential credential, Azure.Storage.Blobs.BlobClientOptions options = null) { } public BlobBaseClient(System.Uri blobUri, Azure.Core.TokenCredential credential, Azure.Storage.Blobs.BlobClientOptions options = null) { } public BlobBaseClient(System.Uri blobUri, Azure.Storage.Blobs.BlobClientOptions options = null) { } public BlobBaseClient(System.Uri blobUri, Azure.Storage.StorageSharedKeyCredential credential, Azure.Storage.Blobs.BlobClientOptions options = null) { } @@ -1361,6 +1366,7 @@ public partial class BlockBlobClient : Azure.Storage.Blobs.Specialized.BlobBaseC protected BlockBlobClient() { } public BlockBlobClient(string connectionString, string containerName, string blobName) { } public BlockBlobClient(string connectionString, string blobContainerName, string blobName, Azure.Storage.Blobs.BlobClientOptions options) { } + public BlockBlobClient(System.Uri blobUri, Azure.AzureSasCredential credential, Azure.Storage.Blobs.BlobClientOptions options = null) { } public BlockBlobClient(System.Uri blobUri, Azure.Core.TokenCredential credential, Azure.Storage.Blobs.BlobClientOptions options = null) { } public BlockBlobClient(System.Uri blobUri, Azure.Storage.Blobs.BlobClientOptions options = null) { } public BlockBlobClient(System.Uri blobUri, Azure.Storage.StorageSharedKeyCredential credential, Azure.Storage.Blobs.BlobClientOptions options = null) { } @@ -1407,6 +1413,7 @@ public partial class PageBlobClient : Azure.Storage.Blobs.Specialized.BlobBaseCl protected PageBlobClient() { } public PageBlobClient(string connectionString, string blobContainerName, string blobName) { } public PageBlobClient(string connectionString, string blobContainerName, string blobName, Azure.Storage.Blobs.BlobClientOptions options) { } + public PageBlobClient(System.Uri blobUri, Azure.AzureSasCredential credential, Azure.Storage.Blobs.BlobClientOptions options = null) { } public PageBlobClient(System.Uri blobUri, Azure.Core.TokenCredential credential, Azure.Storage.Blobs.BlobClientOptions options = null) { } public PageBlobClient(System.Uri blobUri, Azure.Storage.Blobs.BlobClientOptions options = null) { } public PageBlobClient(System.Uri blobUri, Azure.Storage.StorageSharedKeyCredential credential, Azure.Storage.Blobs.BlobClientOptions options = null) { } diff --git a/sdk/storage/Azure.Storage.Blobs/src/AppendBlobClient.cs b/sdk/storage/Azure.Storage.Blobs/src/AppendBlobClient.cs index a75d4863f577..b570b808adc7 100644 --- a/sdk/storage/Azure.Storage.Blobs/src/AppendBlobClient.cs +++ b/sdk/storage/Azure.Storage.Blobs/src/AppendBlobClient.cs @@ -149,6 +149,34 @@ public AppendBlobClient(Uri blobUri, StorageSharedKeyCredential credential, Blob AssertNoClientSideEncryption(options); } + /// + /// Initializes a new instance of the + /// class. + /// + /// + /// A referencing the append blob that includes the + /// name of the account, the name of the container, and the name of + /// the blob. + /// This is likely to be similar to "https://{account_name}.blob.core.windows.net/{container_name}/{blob_name}". + /// Must not contain shared access signature, which should be passed in the second parameter. + /// + /// + /// The shared access signature credential used to sign requests. + /// + /// + /// Optional client options that define the transport pipeline + /// policies for authentication, retries, etc., that are applied to + /// every request. + /// + /// + /// This constructor should only be used when shared access signature needs to be updated during lifespan of this client. + /// + public AppendBlobClient(Uri blobUri, AzureSasCredential credential, BlobClientOptions options = default) + : base(blobUri, credential, options) + { + AssertNoClientSideEncryption(options); + } + /// /// Initializes a new instance of the /// class. diff --git a/sdk/storage/Azure.Storage.Blobs/src/Azure.Storage.Blobs.csproj b/sdk/storage/Azure.Storage.Blobs/src/Azure.Storage.Blobs.csproj index 53a9f562f694..65f17fbf0637 100644 --- a/sdk/storage/Azure.Storage.Blobs/src/Azure.Storage.Blobs.csproj +++ b/sdk/storage/Azure.Storage.Blobs/src/Azure.Storage.Blobs.csproj @@ -24,7 +24,9 @@ + + diff --git a/sdk/storage/Azure.Storage.Blobs/src/BlobBaseClient.cs b/sdk/storage/Azure.Storage.Blobs/src/BlobBaseClient.cs index 92a05e4d0aed..fe9654dafe77 100644 --- a/sdk/storage/Azure.Storage.Blobs/src/BlobBaseClient.cs +++ b/sdk/storage/Azure.Storage.Blobs/src/BlobBaseClient.cs @@ -301,6 +301,33 @@ public BlobBaseClient(Uri blobUri, StorageSharedKeyCredential credential, BlobCl { } + /// + /// Initializes a new instance of the + /// class. + /// + /// + /// A referencing the blob that includes the + /// name of the account, the name of the container, and the name of + /// the blob. + /// This is likely to be similar to "https://{account_name}.blob.core.windows.net/{container_name}/{blob_name}". + /// Must not contain shared access signature, which should be passed in the second parameter. + /// + /// + /// The shared access signature credential used to sign requests. + /// + /// + /// Optional client options that define the transport pipeline + /// policies for authentication, retries, etc., that are applied to + /// every request. + /// + /// + /// This constructor should only be used when shared access signature needs to be updated during lifespan of this client. + /// + public BlobBaseClient(Uri blobUri, AzureSasCredential credential, BlobClientOptions options = default) + : this(blobUri, credential.AsPolicy(blobUri), options, null) + { + } + /// /// Initializes a new instance of the /// class. @@ -352,6 +379,7 @@ internal BlobBaseClient( BlobClientOptions options, StorageSharedKeyCredential storageSharedKeyCredential) { + Argument.AssertNotNull(blobUri, nameof(blobUri)); options ??= new BlobClientOptions(); _uri = blobUri; if (!string.IsNullOrEmpty(blobUri.Query)) diff --git a/sdk/storage/Azure.Storage.Blobs/src/BlobClient.cs b/sdk/storage/Azure.Storage.Blobs/src/BlobClient.cs index 4e83b5ad338a..983b4c967f33 100644 --- a/sdk/storage/Azure.Storage.Blobs/src/BlobClient.cs +++ b/sdk/storage/Azure.Storage.Blobs/src/BlobClient.cs @@ -130,6 +130,33 @@ public BlobClient(Uri blobUri, StorageSharedKeyCredential credential, BlobClient { } + /// + /// Initializes a new instance of the + /// class. + /// + /// + /// A referencing the blob that includes the + /// name of the account, the name of the container, and the name of + /// the blob. + /// This is likely to be similar to "https://{account_name}.blob.core.windows.net/{container_name}/{blob_name}". + /// Must not contain shared access signature, which should be passed in the second parameter. + /// + /// + /// The shared access signature credential used to sign requests. + /// + /// + /// Optional client options that define the transport pipeline + /// policies for authentication, retries, etc., that are applied to + /// every request. + /// + /// + /// This constructor should only be used when shared access signature needs to be updated during lifespan of this client. + /// + public BlobClient(Uri blobUri, AzureSasCredential credential, BlobClientOptions options = default) + : base(blobUri, credential, options) + { + } + /// /// Initializes a new instance of the /// class. diff --git a/sdk/storage/Azure.Storage.Blobs/src/BlobContainerClient.cs b/sdk/storage/Azure.Storage.Blobs/src/BlobContainerClient.cs index de69718e3a33..bce659de7a9b 100644 --- a/sdk/storage/Azure.Storage.Blobs/src/BlobContainerClient.cs +++ b/sdk/storage/Azure.Storage.Blobs/src/BlobContainerClient.cs @@ -275,6 +275,32 @@ public BlobContainerClient(Uri blobContainerUri, StorageSharedKeyCredential cred _storageSharedKeyCredential = credential; } + /// + /// Initializes a new instance of the + /// class. + /// + /// + /// A referencing the blob container that includes the + /// name of the account and the name of the container. + /// This is likely to be similar to "https://{account_name}.blob.core.windows.net/{container_name}". + /// Must not contain shared access signature, which should be passed in the second parameter. + /// + /// + /// The shared access signature credential used to sign requests. + /// + /// + /// Optional client options that define the transport pipeline + /// policies for authentication, retries, etc., that are applied to + /// every request. + /// + /// + /// This constructor should only be used when shared access signature needs to be updated during lifespan of this client. + /// + public BlobContainerClient(Uri blobContainerUri, AzureSasCredential credential, BlobClientOptions options = default) + : this(blobContainerUri, credential.AsPolicy(blobContainerUri), options) + { + } + /// /// Initializes a new instance of the /// class. @@ -317,6 +343,7 @@ public BlobContainerClient(Uri blobContainerUri, TokenCredential credential, Blo /// internal BlobContainerClient(Uri blobContainerUri, HttpPipelinePolicy authentication, BlobClientOptions options) { + Argument.AssertNotNull(blobContainerUri, nameof(blobContainerUri)); _uri = blobContainerUri; options ??= new BlobClientOptions(); _pipeline = options.Build(authentication); diff --git a/sdk/storage/Azure.Storage.Blobs/src/BlobServiceClient.cs b/sdk/storage/Azure.Storage.Blobs/src/BlobServiceClient.cs index dc901c09e645..7576d91ad0ef 100644 --- a/sdk/storage/Azure.Storage.Blobs/src/BlobServiceClient.cs +++ b/sdk/storage/Azure.Storage.Blobs/src/BlobServiceClient.cs @@ -242,6 +242,31 @@ public BlobServiceClient(Uri serviceUri, StorageSharedKeyCredential credential, { } + /// + /// Initializes a new instance of the + /// class. + /// + /// + /// A referencing the blob service. + /// This is likely to be similar to "https://{account_name}.blob.core.windows.net". + /// Must not contain shared access signature, which should be passed in the second parameter. + /// + /// + /// The shared access signature credential used to sign requests. + /// + /// + /// Optional client options that define the transport pipeline + /// policies for authentication, retries, etc., that are applied to + /// every request. + /// + /// + /// This constructor should only be used when shared access signature needs to be updated during lifespan of this client. + /// + public BlobServiceClient(Uri serviceUri, AzureSasCredential credential, BlobClientOptions options = default) + : this(serviceUri, credential.AsPolicy(serviceUri), options ?? new BlobClientOptions()) + { + } + /// /// Initializes a new instance of the /// class. @@ -337,6 +362,7 @@ internal BlobServiceClient( HttpPipeline pipeline, StorageSharedKeyCredential storageSharedKeyCredential) { + Argument.AssertNotNull(serviceUri, nameof(serviceUri)); _uri = serviceUri; _authenticationPolicy = authentication; _pipeline = pipeline; diff --git a/sdk/storage/Azure.Storage.Blobs/src/BlockBlobClient.cs b/sdk/storage/Azure.Storage.Blobs/src/BlockBlobClient.cs index 2cbea762261a..cda27c1fe91c 100644 --- a/sdk/storage/Azure.Storage.Blobs/src/BlockBlobClient.cs +++ b/sdk/storage/Azure.Storage.Blobs/src/BlockBlobClient.cs @@ -235,6 +235,33 @@ public BlockBlobClient(Uri blobUri, StorageSharedKeyCredential credential, BlobC AssertNoClientSideEncryption(options); } + /// + /// Initializes a new instance of the + /// class. + /// + /// + /// A referencing the blob that includes the + /// name of the account, the name of the container, and the name of + /// the blob. + /// Must not contain shared access signature, which should be passed in the second parameter. + /// + /// + /// The shared access signature credential used to sign requests. + /// + /// + /// Optional client options that define the transport pipeline + /// policies for authentication, retries, etc., that are applied to + /// every request. + /// + /// + /// This constructor should only be used when shared access signature needs to be updated during lifespan of this client. + /// + public BlockBlobClient(Uri blobUri, AzureSasCredential credential, BlobClientOptions options = default) + : base(blobUri, credential, options) + { + AssertNoClientSideEncryption(options); + } + /// /// Initializes a new instance of the /// class. diff --git a/sdk/storage/Azure.Storage.Blobs/src/PageBlobClient.cs b/sdk/storage/Azure.Storage.Blobs/src/PageBlobClient.cs index 5f1b50b68694..13cb1b32ddfe 100644 --- a/sdk/storage/Azure.Storage.Blobs/src/PageBlobClient.cs +++ b/sdk/storage/Azure.Storage.Blobs/src/PageBlobClient.cs @@ -150,6 +150,33 @@ public PageBlobClient(Uri blobUri, StorageSharedKeyCredential credential, BlobCl AssertNoClientSideEncryption(options); } + /// + /// Initializes a new instance of the + /// class. + /// + /// + /// A referencing the page blob that includes the + /// name of the account, the name of the blob container, and the name of + /// the blob. + /// Must not contain shared access signature, which should be passed in the second parameter. + /// + /// + /// The shared access signature credential used to sign requests. + /// + /// + /// Optional client options that define the transport pipeline + /// policies for authentication, retries, etc., that are applied to + /// every request. + /// + /// + /// This constructor should only be used when shared access signature needs to be updated during lifespan of this client. + /// + public PageBlobClient(Uri blobUri, AzureSasCredential credential, BlobClientOptions options = default) + : base(blobUri, credential, options) + { + AssertNoClientSideEncryption(options); + } + /// /// Initializes a new instance of the /// class. diff --git a/sdk/storage/Azure.Storage.Blobs/tests/AppendBlobClientTests.cs b/sdk/storage/Azure.Storage.Blobs/tests/AppendBlobClientTests.cs index 6ae8ed2c3d8d..ebbe623496f5 100644 --- a/sdk/storage/Azure.Storage.Blobs/tests/AppendBlobClientTests.cs +++ b/sdk/storage/Azure.Storage.Blobs/tests/AppendBlobClientTests.cs @@ -12,6 +12,7 @@ using Azure.Core.TestFramework; using Azure.Storage.Blobs.Models; using Azure.Storage.Blobs.Specialized; +using Azure.Storage.Sas; using Azure.Storage.Test; using Azure.Storage.Test.Shared; using NUnit.Framework; @@ -117,6 +118,39 @@ public void Ctor_CPK_EncryptionScope() new ArgumentException("CustomerProvidedKey and EncryptionScope cannot both be set")); } + [Test] + public async Task Ctor_AzureSasCredential() + { + // Arrange + await using DisposingContainer test = await GetTestContainerAsync(); + string sas = GetContainerSas(test.Container.Name, BlobContainerSasPermissions.All).ToString(); + var client = test.Container.GetAppendBlobClient(GetNewBlobName()); + await client.CreateAsync(); + Uri blobUri = client.Uri; + + // Act + var sasClient = InstrumentClient(new AppendBlobClient(blobUri, new AzureSasCredential(sas), GetOptions())); + BlobProperties blobProperties = await sasClient.GetPropertiesAsync(); + + // Assert + Assert.IsNotNull(blobProperties); + } + + [Test] + public async Task Ctor_AzureSasCredential_VerifyNoSasInUri() + { + // Arrange + await using DisposingContainer test = await GetTestContainerAsync(); + string sas = GetContainerSas(test.Container.Name, BlobContainerSasPermissions.All).ToString(); + Uri blobUri = test.Container.GetAppendBlobClient("foo").Uri; + blobUri = new Uri(blobUri.ToString() + "?" + sas); + + // Act + TestHelper.AssertExpectedException( + () => new AppendBlobClient(blobUri, new AzureSasCredential(sas)), + e => e.Message.Contains($"You cannot use {nameof(AzureSasCredential)} when the resource URI also contains a Shared Access Signature")); + } + [Test] public void WithSnapshot() { diff --git a/sdk/storage/Azure.Storage.Blobs/tests/BlobBaseClientTests.cs b/sdk/storage/Azure.Storage.Blobs/tests/BlobBaseClientTests.cs index b5da78c8f4b5..b05a0e79de64 100644 --- a/sdk/storage/Azure.Storage.Blobs/tests/BlobBaseClientTests.cs +++ b/sdk/storage/Azure.Storage.Blobs/tests/BlobBaseClientTests.cs @@ -3,16 +3,13 @@ using System; using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; using System.IO; using System.Linq; using System.Net; -using System.Reflection.Metadata; using System.Security.Cryptography; using System.Threading; using System.Threading.Tasks; using Azure.Core; -using Azure.Core.Pipeline; using Azure.Core.TestFramework; using Azure.Identity; using Azure.Storage.Blobs.Models; @@ -178,6 +175,66 @@ public void Ctor_CPK_EncryptionScope() new ArgumentException("CustomerProvidedKey and EncryptionScope cannot both be set")); } + [Test] + public async Task Ctor_AzureSasCredential() + { + // Arrange + await using DisposingContainer test = await GetTestContainerAsync(); + string sas = GetContainerSas(test.Container.Name, BlobContainerSasPermissions.All).ToString(); + var client = test.Container.GetBlobClient(GetNewBlobName()); + await client.UploadAsync(new MemoryStream()); + Uri blobUri = client.Uri; + + // Act + var sasClient = InstrumentClient(new BlobBaseClient(blobUri, new AzureSasCredential(sas), GetOptions())); + BlobProperties blobProperties = await sasClient.GetPropertiesAsync(); + + // Assert + Assert.IsNotNull(blobProperties); + } + + [Test] + public async Task Ctor_AzureSasCredential_UserDelegationSAS() + { + // Arrange + BlobServiceClient oauthService = GetServiceClient_OauthAccount(); + await using DisposingContainer test = await GetTestContainerAsync(oauthService); + var client = test.Container.GetBlobClient(GetNewBlobName()); + await client.UploadAsync(new MemoryStream()); + Uri blobUri = client.Uri; + Response userDelegationKey = await oauthService.GetUserDelegationKeyAsync( + startsOn: null, + expiresOn: Recording.UtcNow.AddHours(1)); + var sasBuilder = new BlobSasBuilder(BlobSasPermissions.All, Recording.UtcNow.AddHours(1)) + { + BlobContainerName = client.BlobContainerName, + BlobName = client.Name, + }; + var sas = sasBuilder.ToSasQueryParameters(userDelegationKey.Value, client.AccountName).ToString(); + + // Act + var sasClient = InstrumentClient(new BlobBaseClient(blobUri, new AzureSasCredential(sas), GetOptions())); + BlobProperties blobProperties = await sasClient.GetPropertiesAsync(); + + // Assert + Assert.IsNotNull(blobProperties); + } + + [Test] + public async Task Ctor_AzureSasCredential_VerifyNoSasInUri() + { + // Arrange + await using DisposingContainer test = await GetTestContainerAsync(); + string sas = GetContainerSas(test.Container.Name, BlobContainerSasPermissions.All).ToString(); + Uri blobUri = test.Container.GetBlobClient("foo").Uri; + blobUri = new Uri(blobUri.ToString() + "?" + sas); + + // Act + TestHelper.AssertExpectedException( + () => new BlobBaseClient(blobUri, new AzureSasCredential(sas)), + e => e.Message.Contains($"You cannot use {nameof(AzureSasCredential)} when the resource URI also contains a Shared Access Signature")); + } + #region Sequential Download [Test] diff --git a/sdk/storage/Azure.Storage.Blobs/tests/BlobClientTests.cs b/sdk/storage/Azure.Storage.Blobs/tests/BlobClientTests.cs index 86c48143f2a7..99e21d86a820 100644 --- a/sdk/storage/Azure.Storage.Blobs/tests/BlobClientTests.cs +++ b/sdk/storage/Azure.Storage.Blobs/tests/BlobClientTests.cs @@ -10,6 +10,7 @@ using Azure.Core.TestFramework; using Azure.Identity; using Azure.Storage.Blobs.Models; +using Azure.Storage.Sas; using Azure.Storage.Test; using Azure.Storage.Test.Shared; using Azure.Storage.Tests; @@ -139,6 +140,39 @@ public void Ctor_CPK_EncryptionScope() new ArgumentException("CustomerProvidedKey and EncryptionScope cannot both be set")); } + [Test] + public async Task Ctor_AzureSasCredential() + { + // Arrange + await using DisposingContainer test = await GetTestContainerAsync(); + string sas = GetContainerSas(test.Container.Name, BlobContainerSasPermissions.All).ToString(); + var client = test.Container.GetBlobClient(GetNewBlobName()); + await client.UploadAsync(new MemoryStream()); + Uri blobUri = client.Uri; + + // Act + var sasClient = InstrumentClient(new BlobClient(blobUri, new AzureSasCredential(sas), GetOptions())); + BlobProperties blobProperties = await sasClient.GetPropertiesAsync(); + + // Assert + Assert.IsNotNull(blobProperties); + } + + [Test] + public async Task Ctor_AzureSasCredential_VerifyNoSasInUri() + { + // Arrange + await using DisposingContainer test = await GetTestContainerAsync(); + string sas = GetContainerSas(test.Container.Name, BlobContainerSasPermissions.All).ToString(); + Uri blobUri = test.Container.GetBlobClient("foo").Uri; + blobUri = new Uri(blobUri.ToString() + "?" + sas); + + // Act + TestHelper.AssertExpectedException( + () => new BlobClient(blobUri, new AzureSasCredential(sas)), + e => e.Message.Contains($"You cannot use {nameof(AzureSasCredential)} when the resource URI also contains a Shared Access Signature")); + } + #region Upload [Test] diff --git a/sdk/storage/Azure.Storage.Blobs/tests/BlockBlobClientTests.cs b/sdk/storage/Azure.Storage.Blobs/tests/BlockBlobClientTests.cs index 93715b99d113..132a1587d729 100644 --- a/sdk/storage/Azure.Storage.Blobs/tests/BlockBlobClientTests.cs +++ b/sdk/storage/Azure.Storage.Blobs/tests/BlockBlobClientTests.cs @@ -124,6 +124,39 @@ public void Ctor_CPK_EncryptionScope() new ArgumentException("CustomerProvidedKey and EncryptionScope cannot both be set")); } + [Test] + public async Task Ctor_AzureSasCredential() + { + // Arrange + await using DisposingContainer test = await GetTestContainerAsync(); + string sas = GetContainerSas(test.Container.Name, BlobContainerSasPermissions.All).ToString(); + var client = test.Container.GetBlobClient(GetNewBlobName()); + await client.UploadAsync(new MemoryStream()); + Uri blobUri = client.Uri; + + // Act + var sasClient = InstrumentClient(new BlockBlobClient(blobUri, new AzureSasCredential(sas), GetOptions())); + BlobProperties blobProperties = await sasClient.GetPropertiesAsync(); + + // Assert + Assert.IsNotNull(blobProperties); + } + + [Test] + public async Task Ctor_AzureSasCredential_VerifyNoSasInUri() + { + // Arrange + await using DisposingContainer test = await GetTestContainerAsync(); + string sas = GetContainerSas(test.Container.Name, BlobContainerSasPermissions.All).ToString(); + Uri blobUri = test.Container.GetBlobClient("foo").Uri; + blobUri = new Uri(blobUri.ToString() + "?" + sas); + + // Act + TestHelper.AssertExpectedException( + () => new BlockBlobClient(blobUri, new AzureSasCredential(sas)), + e => e.Message.Contains($"You cannot use {nameof(AzureSasCredential)} when the resource URI also contains a Shared Access Signature")); + } + [Test] public void WithSnapshot() { diff --git a/sdk/storage/Azure.Storage.Blobs/tests/ContainerClientTests.cs b/sdk/storage/Azure.Storage.Blobs/tests/ContainerClientTests.cs index 81acec909cc4..7333c3109b65 100644 --- a/sdk/storage/Azure.Storage.Blobs/tests/ContainerClientTests.cs +++ b/sdk/storage/Azure.Storage.Blobs/tests/ContainerClientTests.cs @@ -294,6 +294,37 @@ public void Ctor_CPK_EncryptionScope() new ArgumentException("CustomerProvidedKey and EncryptionScope cannot both be set")); } + [Test] + public async Task Ctor_AzureSasCredential() + { + // Arrange + await using DisposingContainer test = await GetTestContainerAsync(); + string sas = GetAccountSasCredentials().SasToken; + Uri uri = test.Container.Uri; + + // Act + var sasClient = InstrumentClient(new BlobContainerClient(uri, new AzureSasCredential(sas), GetOptions())); + BlobContainerProperties properties = await sasClient.GetPropertiesAsync(); + + // Assert + Assert.IsNotNull(properties); + } + + [Test] + public async Task Ctor_AzureSasCredential_VerifyNoSasInUri() + { + // Arrange + await using DisposingContainer test = await GetTestContainerAsync(); + string sas = GetAccountSasCredentials().SasToken; + Uri uri = test.Container.Uri; + uri = new Uri(uri.ToString() + "?" + sas); + + // Act + TestHelper.AssertExpectedException( + () => new BlobContainerClient(uri, new AzureSasCredential(sas)), + e => e.Message.Contains($"You cannot use {nameof(AzureSasCredential)} when the resource URI also contains a Shared Access Signature")); + } + [Test] public async Task CreateAsync_WithSharedKey() { diff --git a/sdk/storage/Azure.Storage.Blobs/tests/PageBlobClientTests.cs b/sdk/storage/Azure.Storage.Blobs/tests/PageBlobClientTests.cs index 75e0b6ed6418..5347001c64fe 100644 --- a/sdk/storage/Azure.Storage.Blobs/tests/PageBlobClientTests.cs +++ b/sdk/storage/Azure.Storage.Blobs/tests/PageBlobClientTests.cs @@ -14,6 +14,7 @@ using Azure.Storage.Blobs.Models; using Azure.Storage.Blobs.Specialized; using Azure.Storage.Blobs.Tests; +using Azure.Storage.Sas; using Azure.Storage.Test; using Azure.Storage.Test.Shared; using Azure.Storage.Tests; @@ -108,6 +109,39 @@ public void Ctor_CPK_Http() new ArgumentException("Cannot use client-provided key without HTTPS.")); } + [Test] + public async Task Ctor_AzureSasCredential() + { + // Arrange + await using DisposingContainer test = await GetTestContainerAsync(); + string sas = GetContainerSas(test.Container.Name, BlobContainerSasPermissions.All).ToString(); + var client = test.Container.GetPageBlobClient(GetNewBlobName()); + await client.CreateAsync(1024); + Uri blobUri = client.Uri; + + // Act + var sasClient = InstrumentClient(new PageBlobClient(blobUri, new AzureSasCredential(sas), GetOptions())); + BlobProperties blobProperties = await sasClient.GetPropertiesAsync(); + + // Assert + Assert.IsNotNull(blobProperties); + } + + [Test] + public async Task Ctor_AzureSasCredential_VerifyNoSasInUri() + { + // Arrange + await using DisposingContainer test = await GetTestContainerAsync(); + string sas = GetContainerSas(test.Container.Name, BlobContainerSasPermissions.All).ToString(); + Uri blobUri = test.Container.GetPageBlobClient("foo").Uri; + blobUri = new Uri(blobUri.ToString() + "?" + sas); + + // Act + TestHelper.AssertExpectedException( + () => new PageBlobClient(blobUri, new AzureSasCredential(sas)), + e => e.Message.Contains($"You cannot use {nameof(AzureSasCredential)} when the resource URI also contains a Shared Access Signature")); + } + [Test] public async Task CreateAsync_Min() { diff --git a/sdk/storage/Azure.Storage.Blobs/tests/ServiceClientTests.cs b/sdk/storage/Azure.Storage.Blobs/tests/ServiceClientTests.cs index 4a70b8cdbe68..9fb2e4fa7eae 100644 --- a/sdk/storage/Azure.Storage.Blobs/tests/ServiceClientTests.cs +++ b/sdk/storage/Azure.Storage.Blobs/tests/ServiceClientTests.cs @@ -120,6 +120,37 @@ public void Ctor_CPK_EncryptionScope() new ArgumentException("CustomerProvidedKey and EncryptionScope cannot both be set")); } + [Test] + public async Task Ctor_AzureSasCredential() + { + // Arrange + await using DisposingContainer test = await GetTestContainerAsync(); + string sas = GetAccountSasCredentials().SasToken; + Uri uri = test.Container.GetParentBlobServiceClient().Uri; + + // Act + var sasClient = InstrumentClient(new BlobServiceClient(uri, new AzureSasCredential(sas), GetOptions())); + BlobServiceProperties properties = await sasClient.GetPropertiesAsync(); + + // Assert + Assert.IsNotNull(properties); + } + + [Test] + public async Task Ctor_AzureSasCredential_VerifyNoSasInUri() + { + // Arrange + await using DisposingContainer test = await GetTestContainerAsync(); + string sas = GetAccountSasCredentials().SasToken; + Uri uri = test.Container.GetParentBlobServiceClient().Uri; + uri = new Uri(uri.ToString() + "?" + sas); + + // Act + TestHelper.AssertExpectedException( + () => new BlobServiceClient(uri, new AzureSasCredential(sas)), + e => e.Message.Contains($"You cannot use {nameof(AzureSasCredential)} when the resource URI also contains a Shared Access Signature")); + } + [Test] public async Task ListContainersSegmentAsync() { diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/Ctor_AzureSasCredential.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/Ctor_AzureSasCredential.json new file mode 100644 index 000000000000..1a6ddc2c9f0b --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/Ctor_AzureSasCredential.json @@ -0,0 +1,146 @@ +{ + "Entries": [ + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-d113691a-3344-e8ea-85eb-8bed298204ae?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-ea7a4f7714f05b4ba57b41e15749eb18-862ca2ec78419143-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "68d26bf9-b303-5cb6-602a-d3af64e5f3b0", + "x-ms-date": "Fri, 18 Dec 2020 21:23:29 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:23:29 GMT", + "ETag": "\u00220x8D8A39B2A7CFD9B\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:23:30 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "68d26bf9-b303-5cb6-602a-d3af64e5f3b0", + "x-ms-request-id": "55e733d8-801e-0056-4084-d5bc83000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-d113691a-3344-e8ea-85eb-8bed298204ae/test-blob-838dd87f-859d-2d3e-f154-01636640824d", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "0", + "traceparent": "00-4e976030688e444d889e81f188603d23-d6dee94c267f934b-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-type": "AppendBlob", + "x-ms-client-request-id": "8d2a1ced-a4ab-74e3-2ca5-76afb253f520", + "x-ms-date": "Fri, 18 Dec 2020 21:23:30 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:23:29 GMT", + "ETag": "\u00220x8D8A39B2AA2E864\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:23:30 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "8d2a1ced-a4ab-74e3-2ca5-76afb253f520", + "x-ms-request-id": "55e73461-801e-0056-4084-d5bc83000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-d113691a-3344-e8ea-85eb-8bed298204ae/test-blob-838dd87f-859d-2d3e-f154-01636640824d?sv=2020-04-08\u0026st=2020-12-18T20:23:30Z\u0026se=2020-12-18T22:23:30Z\u0026sr=c\u0026sp=racwdxlt\u0026sig=Sanitized", + "RequestMethod": "HEAD", + "RequestHeaders": { + "traceparent": "00-e53b109667a079408138760dfee860ab-3ff6345531a51e4c-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "4a7516f9-f515-1fa1-267e-910925fb34c8", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "0", + "Content-Type": "application/octet-stream", + "Date": "Fri, 18 Dec 2020 21:23:30 GMT", + "ETag": "\u00220x8D8A39B2AA2E864\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:23:30 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Vary": "Origin", + "x-ms-blob-committed-block-count": "0", + "x-ms-blob-type": "AppendBlob", + "x-ms-client-request-id": "4a7516f9-f515-1fa1-267e-910925fb34c8", + "x-ms-creation-time": "Fri, 18 Dec 2020 21:23:30 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "110d6877-101e-003e-7c84-d5e2d2000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-d113691a-3344-e8ea-85eb-8bed298204ae?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-34fef742431f9e4d8a5752ff46a347f2-681396de586b2c49-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "9bb64d90-abdd-b30a-e5cb-3372a5f7be31", + "x-ms-date": "Fri, 18 Dec 2020 21:23:30 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:23:29 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "9bb64d90-abdd-b30a-e5cb-3372a5f7be31", + "x-ms-request-id": "55e734aa-801e-0056-7f84-d5bc83000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T13:23:30.2090858-08:00", + "RandomSeed": "366716381", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttp://kasoboltest.blob.core.windows.net\nhttp://kasoboltest.file.core.windows.net\nhttp://kasoboltest.queue.core.windows.net\nhttp://kasoboltest.table.core.windows.net\n\n\n\n\nhttp://kasoboltest-secondary.blob.core.windows.net\nhttp://kasoboltest-secondary.file.core.windows.net\nhttp://kasoboltest-secondary.queue.core.windows.net\nhttp://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=http://kasoboltest.blob.core.windows.net/;QueueEndpoint=http://kasoboltest.queue.core.windows.net/;FileEndpoint=http://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=http://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=http://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=http://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/Ctor_AzureSasCredentialAsync.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/Ctor_AzureSasCredentialAsync.json new file mode 100644 index 000000000000..ae17c77c9ec4 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/Ctor_AzureSasCredentialAsync.json @@ -0,0 +1,146 @@ +{ + "Entries": [ + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-1fa7ebe7-e6b4-b675-7bfb-220d1dba1509?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-5a592a3cf252c341bdb9d7ac482cf039-b9f41c5e09ad574f-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "e038e4be-fb89-0dae-0da0-3c208f8a47f7", + "x-ms-date": "Fri, 18 Dec 2020 21:23:30 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:23:29 GMT", + "ETag": "\u00220x8D8A39B2ACA0882\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:23:30 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "e038e4be-fb89-0dae-0da0-3c208f8a47f7", + "x-ms-request-id": "17a7d92f-401e-0026-3c84-d5cf47000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-1fa7ebe7-e6b4-b675-7bfb-220d1dba1509/test-blob-3ae23f72-42a2-1cb2-30cb-5fde3f6e21ac", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "0", + "traceparent": "00-1607000add020149b39c988897be34f9-3773ecdcda46ea48-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-type": "AppendBlob", + "x-ms-client-request-id": "5595af8e-47ec-7b7b-311b-afbd9bcfcd9e", + "x-ms-date": "Fri, 18 Dec 2020 21:23:30 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:23:29 GMT", + "ETag": "\u00220x8D8A39B2AD068D5\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:23:30 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "5595af8e-47ec-7b7b-311b-afbd9bcfcd9e", + "x-ms-request-id": "17a7d94b-401e-0026-5384-d5cf47000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-1fa7ebe7-e6b4-b675-7bfb-220d1dba1509/test-blob-3ae23f72-42a2-1cb2-30cb-5fde3f6e21ac?sv=2020-04-08\u0026st=2020-12-18T20:23:30Z\u0026se=2020-12-18T22:23:30Z\u0026sr=c\u0026sp=racwdxlt\u0026sig=Sanitized", + "RequestMethod": "HEAD", + "RequestHeaders": { + "traceparent": "00-cda8620852fd614ebf70352540ccd0ff-f02382f6679c344d-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "90502a7f-ccd8-31bf-88d3-086685c2f3ca", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "0", + "Content-Type": "application/octet-stream", + "Date": "Fri, 18 Dec 2020 21:23:30 GMT", + "ETag": "\u00220x8D8A39B2AD068D5\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:23:30 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Vary": "Origin", + "x-ms-blob-committed-block-count": "0", + "x-ms-blob-type": "AppendBlob", + "x-ms-client-request-id": "90502a7f-ccd8-31bf-88d3-086685c2f3ca", + "x-ms-creation-time": "Fri, 18 Dec 2020 21:23:30 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "a881d7de-401e-0069-4084-d50b5f000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-1fa7ebe7-e6b4-b675-7bfb-220d1dba1509?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-8e0d1b4ca90092419da05874258261d0-c1b7d4f9f3c8d44f-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "703d1b8d-3d7f-b2c5-d075-0267050eb6fc", + "x-ms-date": "Fri, 18 Dec 2020 21:23:30 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:23:29 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "703d1b8d-3d7f-b2c5-d075-0267050eb6fc", + "x-ms-request-id": "17a7d996-401e-0026-1784-d5cf47000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T13:23:30.6646060-08:00", + "RandomSeed": "366884494", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttp://kasoboltest.blob.core.windows.net\nhttp://kasoboltest.file.core.windows.net\nhttp://kasoboltest.queue.core.windows.net\nhttp://kasoboltest.table.core.windows.net\n\n\n\n\nhttp://kasoboltest-secondary.blob.core.windows.net\nhttp://kasoboltest-secondary.file.core.windows.net\nhttp://kasoboltest-secondary.queue.core.windows.net\nhttp://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=http://kasoboltest.blob.core.windows.net/;QueueEndpoint=http://kasoboltest.queue.core.windows.net/;FileEndpoint=http://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=http://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=http://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=http://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json new file mode 100644 index 000000000000..1d81aac02a3a --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json @@ -0,0 +1,72 @@ +{ + "Entries": [ + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-2fa5ce91-f46e-a5a4-1ed6-b69686b9c80b?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-505b541a223bd643a4c5b7b1ab9c3f24-495fedf949c86d4b-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "a6da75e9-cf17-bd09-adc3-a048a52394f4", + "x-ms-date": "Fri, 18 Dec 2020 21:23:50 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:23:50 GMT", + "ETag": "\u00220x8D8A39B36D6A0BD\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:23:50 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "a6da75e9-cf17-bd09-adc3-a048a52394f4", + "x-ms-request-id": "80810a79-e01e-002b-4284-d5204b000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-2fa5ce91-f46e-a5a4-1ed6-b69686b9c80b?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-c31f63c8e93be1489656d3bdc9984422-2f6fe2566e8bdb4b-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "10adcaf7-21df-32f3-eb6a-860357a868d2", + "x-ms-date": "Fri, 18 Dec 2020 21:23:51 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:23:50 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "10adcaf7-21df-32f3-eb6a-860357a868d2", + "x-ms-request-id": "80810af3-e01e-002b-2d84-d5204b000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T13:23:50.9577225-08:00", + "RandomSeed": "1297111434", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttp://kasoboltest.blob.core.windows.net\nhttp://kasoboltest.file.core.windows.net\nhttp://kasoboltest.queue.core.windows.net\nhttp://kasoboltest.table.core.windows.net\n\n\n\n\nhttp://kasoboltest-secondary.blob.core.windows.net\nhttp://kasoboltest-secondary.file.core.windows.net\nhttp://kasoboltest-secondary.queue.core.windows.net\nhttp://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=http://kasoboltest.blob.core.windows.net/;QueueEndpoint=http://kasoboltest.queue.core.windows.net/;FileEndpoint=http://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=http://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=http://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=http://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json new file mode 100644 index 000000000000..5d82fc176228 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/AppendBlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json @@ -0,0 +1,72 @@ +{ + "Entries": [ + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-24a41bc9-ad8a-b712-8a8d-30f969b0f758?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-f5b5db1707aa1b46b437bd2e301dc75e-e477e2176396d44f-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "b19af8c4-1e8a-e3d2-4b7c-aaceae5b7537", + "x-ms-date": "Fri, 18 Dec 2020 21:23:51 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:23:51 GMT", + "ETag": "\u00220x8D8A39B371D4391\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:23:51 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "b19af8c4-1e8a-e3d2-4b7c-aaceae5b7537", + "x-ms-request-id": "a8e174ad-a01e-0063-2b84-d512d6000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-24a41bc9-ad8a-b712-8a8d-30f969b0f758?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-fe06c39afb00c940a9825d0c342cb72e-3ac426ab228c0a4f-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "713596ff-4515-e2ce-6e8d-cd7f270114bb", + "x-ms-date": "Fri, 18 Dec 2020 21:23:51 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:23:51 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "713596ff-4515-e2ce-6e8d-cd7f270114bb", + "x-ms-request-id": "a8e174cc-a01e-0063-4384-d512d6000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T13:23:51.3397164-08:00", + "RandomSeed": "1252667018", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttp://kasoboltest.blob.core.windows.net\nhttp://kasoboltest.file.core.windows.net\nhttp://kasoboltest.queue.core.windows.net\nhttp://kasoboltest.table.core.windows.net\n\n\n\n\nhttp://kasoboltest-secondary.blob.core.windows.net\nhttp://kasoboltest-secondary.file.core.windows.net\nhttp://kasoboltest-secondary.queue.core.windows.net\nhttp://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=http://kasoboltest.blob.core.windows.net/;QueueEndpoint=http://kasoboltest.queue.core.windows.net/;FileEndpoint=http://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=http://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=http://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=http://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobBaseClientTests/Ctor_AzureSasCredential.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobBaseClientTests/Ctor_AzureSasCredential.json new file mode 100644 index 000000000000..41319c49a2da --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobBaseClientTests/Ctor_AzureSasCredential.json @@ -0,0 +1,151 @@ +{ + "Entries": [ + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-f5bf1ec4-97f3-79c4-ca71-ce560b42ce04?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-d3a09545b0860f41b7252de4bda30861-c085f3f61aacbc4a-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "a6cf4cd9-224a-d5bd-53e2-9ed34147960b", + "x-ms-date": "Fri, 18 Dec 2020 21:16:54 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:16:54 GMT", + "ETag": "\u00220x8D8A39A3EA47D64\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:16:54 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "a6cf4cd9-224a-d5bd-53e2-9ed34147960b", + "x-ms-request-id": "807dd4e2-e01e-002b-1683-d5204b000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-f5bf1ec4-97f3-79c4-ca71-ce560b42ce04/test-blob-a2841fe7-f650-c631-5843-338dca3c329d", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "0", + "If-None-Match": "*", + "traceparent": "00-995629efa032614aa966f70b5116929d-fb5fa5a65cb72546-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "27a0c2d0-b9a7-e2f4-1b09-4d07ee300b16", + "x-ms-date": "Fri, 18 Dec 2020 21:16:54 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": [], + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Content-MD5": "1B2M2Y8AsgTpgAmY7PhCfg==", + "Date": "Fri, 18 Dec 2020 21:16:54 GMT", + "ETag": "\u00220x8D8A39A3EC6E23C\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:16:54 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "27a0c2d0-b9a7-e2f4-1b09-4d07ee300b16", + "x-ms-content-crc64": "AAAAAAAAAAA=", + "x-ms-request-id": "807dd57e-e01e-002b-2483-d5204b000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-f5bf1ec4-97f3-79c4-ca71-ce560b42ce04/test-blob-a2841fe7-f650-c631-5843-338dca3c329d?sv=2020-04-08\u0026st=2020-12-18T20:16:54Z\u0026se=2020-12-18T22:16:54Z\u0026sr=c\u0026sp=racwdxlt\u0026sig=Sanitized", + "RequestMethod": "HEAD", + "RequestHeaders": { + "traceparent": "00-c1e285f7c37e89458620e8afaa5a053e-a5e751390d219e49-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "07bcb907-0a9c-5af5-9599-a369dab1d647", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "0", + "Content-MD5": "1B2M2Y8AsgTpgAmY7PhCfg==", + "Content-Type": "application/octet-stream", + "Date": "Fri, 18 Dec 2020 21:16:54 GMT", + "ETag": "\u00220x8D8A39A3EC6E23C\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:16:54 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Vary": "Origin", + "x-ms-access-tier": "Hot", + "x-ms-access-tier-inferred": "true", + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "07bcb907-0a9c-5af5-9599-a369dab1d647", + "x-ms-creation-time": "Fri, 18 Dec 2020 21:16:54 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "241dce67-e01e-004d-5283-d59211000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-f5bf1ec4-97f3-79c4-ca71-ce560b42ce04?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-11b15e50d036b3409f75476a7f4a8c30-15f266fb27ab054d-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "3500e6a1-0373-a57a-0b64-2230342fe4b4", + "x-ms-date": "Fri, 18 Dec 2020 21:16:54 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:16:54 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "3500e6a1-0373-a57a-0b64-2230342fe4b4", + "x-ms-request-id": "807dd5e7-e01e-002b-0a83-d5204b000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T13:16:54.5238033-08:00", + "RandomSeed": "243748226", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttp://kasoboltest.blob.core.windows.net\nhttp://kasoboltest.file.core.windows.net\nhttp://kasoboltest.queue.core.windows.net\nhttp://kasoboltest.table.core.windows.net\n\n\n\n\nhttp://kasoboltest-secondary.blob.core.windows.net\nhttp://kasoboltest-secondary.file.core.windows.net\nhttp://kasoboltest-secondary.queue.core.windows.net\nhttp://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=http://kasoboltest.blob.core.windows.net/;QueueEndpoint=http://kasoboltest.queue.core.windows.net/;FileEndpoint=http://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=http://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=http://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=http://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobBaseClientTests/Ctor_AzureSasCredentialAsync.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobBaseClientTests/Ctor_AzureSasCredentialAsync.json new file mode 100644 index 000000000000..8443591490e4 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobBaseClientTests/Ctor_AzureSasCredentialAsync.json @@ -0,0 +1,151 @@ +{ + "Entries": [ + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-1d6a7af0-ddec-bb83-7510-adf8646fd6a9?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-521775fa66173a438d87f402c85605fd-89158fb98c29234d-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "06b9a890-146e-13c6-8009-1a4b430fecdd", + "x-ms-date": "Fri, 18 Dec 2020 21:16:54 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:16:54 GMT", + "ETag": "\u00220x8D8A39A3EF9BF0B\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:16:54 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "06b9a890-146e-13c6-8009-1a4b430fecdd", + "x-ms-request-id": "32024002-801e-005d-2583-d5a4f7000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-1d6a7af0-ddec-bb83-7510-adf8646fd6a9/test-blob-d05bacba-fa19-7026-d375-d180f7b89aeb", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "0", + "If-None-Match": "*", + "traceparent": "00-91404992961dfb469c6af57304bd29e6-b2c675cf8db8494e-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "740f0880-1c2f-9544-8148-32f842461bc7", + "x-ms-date": "Fri, 18 Dec 2020 21:16:55 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": [], + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Content-MD5": "1B2M2Y8AsgTpgAmY7PhCfg==", + "Date": "Fri, 18 Dec 2020 21:16:54 GMT", + "ETag": "\u00220x8D8A39A3EFFD666\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:16:55 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "740f0880-1c2f-9544-8148-32f842461bc7", + "x-ms-content-crc64": "AAAAAAAAAAA=", + "x-ms-request-id": "32024011-801e-005d-3183-d5a4f7000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-1d6a7af0-ddec-bb83-7510-adf8646fd6a9/test-blob-d05bacba-fa19-7026-d375-d180f7b89aeb?sv=2020-04-08\u0026st=2020-12-18T20:16:55Z\u0026se=2020-12-18T22:16:55Z\u0026sr=c\u0026sp=racwdxlt\u0026sig=Sanitized", + "RequestMethod": "HEAD", + "RequestHeaders": { + "traceparent": "00-c4fc4f1807b6fc4eb980f2b12de5f468-e035ddf03162d34d-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "ef0095c4-26a9-07bc-0ad2-3a6c9c432134", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "0", + "Content-MD5": "1B2M2Y8AsgTpgAmY7PhCfg==", + "Content-Type": "application/octet-stream", + "Date": "Fri, 18 Dec 2020 21:16:55 GMT", + "ETag": "\u00220x8D8A39A3EFFD666\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:16:55 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Vary": "Origin", + "x-ms-access-tier": "Hot", + "x-ms-access-tier-inferred": "true", + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "ef0095c4-26a9-07bc-0ad2-3a6c9c432134", + "x-ms-creation-time": "Fri, 18 Dec 2020 21:16:55 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "4ecfe747-701e-002e-3883-d5d434000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-1d6a7af0-ddec-bb83-7510-adf8646fd6a9?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-247682a757261842b535cc13767ddfb0-61f5c76752effa4c-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "ad33ba3e-2c46-481e-7220-e9d4f4ba4f2c", + "x-ms-date": "Fri, 18 Dec 2020 21:16:55 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:16:54 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "ad33ba3e-2c46-481e-7220-e9d4f4ba4f2c", + "x-ms-request-id": "3202404b-801e-005d-6283-d5a4f7000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T13:16:55.0278038-08:00", + "RandomSeed": "498972239", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttp://kasoboltest.blob.core.windows.net\nhttp://kasoboltest.file.core.windows.net\nhttp://kasoboltest.queue.core.windows.net\nhttp://kasoboltest.table.core.windows.net\n\n\n\n\nhttp://kasoboltest-secondary.blob.core.windows.net\nhttp://kasoboltest-secondary.file.core.windows.net\nhttp://kasoboltest-secondary.queue.core.windows.net\nhttp://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=http://kasoboltest.blob.core.windows.net/;QueueEndpoint=http://kasoboltest.queue.core.windows.net/;FileEndpoint=http://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=http://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=http://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=http://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobBaseClientTests/Ctor_AzureSasCredential_UserDelegationSAS.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobBaseClientTests/Ctor_AzureSasCredential_UserDelegationSAS.json new file mode 100644 index 000000000000..b2288ef22f29 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobBaseClientTests/Ctor_AzureSasCredential_UserDelegationSAS.json @@ -0,0 +1,179 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasoboloauthtest.blob.core.windows.net/test-container-ad86b11e-6e19-031e-8180-6246941649e3?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-069b1afeba48e7438ccc7edebb76478a-1b75ded8a5705e48-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20210105.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "d560afe7-bf62-d719-e256-371c491dcd52", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 05 Jan 2021 19:24:29 GMT", + "ETag": "\u00220x8D8B1AF861920DE\u0022", + "Last-Modified": "Tue, 05 Jan 2021 19:24:30 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "d560afe7-bf62-d719-e256-371c491dcd52", + "x-ms-request-id": "6a1d7e2b-701e-0069-1a98-e355a6000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboloauthtest.blob.core.windows.net/test-container-ad86b11e-6e19-031e-8180-6246941649e3/test-blob-00ba7077-b438-c125-f27b-de8c5533aa8c", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "0", + "If-None-Match": "*", + "traceparent": "00-0207e6bc772ba94baad1809f12175b81-b8f48c621b61e748-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20210105.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "e872c6bf-6f3a-32d7-899f-e3e6e08c81af", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": [], + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Content-MD5": "1B2M2Y8AsgTpgAmY7PhCfg==", + "Date": "Tue, 05 Jan 2021 19:24:30 GMT", + "ETag": "\u00220x8D8B1AF863A8C00\u0022", + "Last-Modified": "Tue, 05 Jan 2021 19:24:30 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "e872c6bf-6f3a-32d7-899f-e3e6e08c81af", + "x-ms-content-crc64": "AAAAAAAAAAA=", + "x-ms-request-id": "6a1d7fde-701e-0069-1a98-e355a6000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboloauthtest.blob.core.windows.net/?restype=service\u0026comp=userdelegationkey", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "56", + "Content-Type": "application/xml", + "traceparent": "00-58bb73b5af938745b0f488781b197331-7ceb9ae6fd8e1e42-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20210105.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "8fcd2db9-c1c0-a051-7b2c-5b16909bd19f", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": "\u003CKeyInfo\u003E\u003CExpiry\u003E2021-01-05T20:24:30Z\u003C/Expiry\u003E\u003C/KeyInfo\u003E", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Type": "application/xml", + "Date": "Tue, 05 Jan 2021 19:24:30 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Transfer-Encoding": "chunked", + "x-ms-client-request-id": "8fcd2db9-c1c0-a051-7b2c-5b16909bd19f", + "x-ms-request-id": "6a1d801d-701e-0069-4e98-e355a6000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": "\uFEFF\u003C?xml version=\u00221.0\u0022 encoding=\u0022utf-8\u0022?\u003E\u003CUserDelegationKey\u003E\u003CSignedOid\u003Ee339aa3f-fc6a-402b-973a-31cd8d64b280\u003C/SignedOid\u003E\u003CSignedTid\u003E72f988bf-86f1-41af-91ab-2d7cd011db47\u003C/SignedTid\u003E\u003CSignedStart\u003E2021-01-05T19:24:30Z\u003C/SignedStart\u003E\u003CSignedExpiry\u003E2021-01-05T20:24:30Z\u003C/SignedExpiry\u003E\u003CSignedService\u003Eb\u003C/SignedService\u003E\u003CSignedVersion\u003E2020-04-08\u003C/SignedVersion\u003E\u003CValue\u003ExVaM0/CgW0OcivrblFFVg6wYXjHxI9nqk7FqNUqN3uQ=\u003C/Value\u003E\u003C/UserDelegationKey\u003E" + }, + { + "RequestUri": "https://kasoboloauthtest.blob.core.windows.net/test-container-ad86b11e-6e19-031e-8180-6246941649e3/test-blob-00ba7077-b438-c125-f27b-de8c5533aa8c?skoid=e339aa3f-fc6a-402b-973a-31cd8d64b280\u0026sktid=72f988bf-86f1-41af-91ab-2d7cd011db47\u0026skt=2021-01-05T19:24:30Z\u0026ske=2021-01-05T20:24:30Z\u0026sks=b\u0026skv=2020-04-08\u0026sv=2020-04-08\u0026se=2021-01-05T20:24:30Z\u0026sr=b\u0026sp=racwdxltme\u0026sig=Sanitized", + "RequestMethod": "HEAD", + "RequestHeaders": { + "traceparent": "00-266ac3a4c1c0dc4ca7535003b84422e7-a4d05224fd35164d-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20210105.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "b32c9403-f2be-eaee-5a6c-7b928c857353", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "0", + "Content-MD5": "1B2M2Y8AsgTpgAmY7PhCfg==", + "Content-Type": "application/octet-stream", + "Date": "Tue, 05 Jan 2021 19:24:30 GMT", + "ETag": "\u00220x8D8B1AF863A8C00\u0022", + "Last-Modified": "Tue, 05 Jan 2021 19:24:30 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-access-tier": "Hot", + "x-ms-access-tier-inferred": "true", + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "b32c9403-f2be-eaee-5a6c-7b928c857353", + "x-ms-creation-time": "Tue, 05 Jan 2021 19:24:30 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "d2307149-c01e-0052-4998-e317f8000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboloauthtest.blob.core.windows.net/test-container-ad86b11e-6e19-031e-8180-6246941649e3?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-f5d0684a6569844e92c1f853a9ede5a4-33f4bf4caf591b4e-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20210105.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "fb1361bd-1d6e-2fe0-5200-20294f604aa3", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 05 Jan 2021 19:24:30 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "fb1361bd-1d6e-2fe0-5200-20294f604aa3", + "x-ms-request-id": "6a1d81b6-701e-0069-3298-e355a6000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2021-01-05T11:24:30.4299138-08:00", + "RandomSeed": "1363005518", + "Storage_TestConfigOAuth": "OAuthTenant\nkasoboloauthtest\nU2FuaXRpemVk\nhttps://kasoboloauthtest.blob.core.windows.net\nhttp://kasoboloauthtest.file.core.windows.net\nhttp://kasoboloauthtest.queue.core.windows.net\nhttp://kasoboloauthtest.table.core.windows.net\n\n\n\n\nhttp://kasoboloauthtest-secondary.blob.core.windows.net\nhttp://kasoboloauthtest-secondary.file.core.windows.net\nhttp://kasoboloauthtest-secondary.queue.core.windows.net\nhttp://kasoboloauthtest-secondary.table.core.windows.net\nc6b5fe1a-9b59-4975-92c4-d9f728c3c371\nSanitized\n72f988bf-86f1-41af-91ab-2d7cd011db47\nhttps://login.microsoftonline.com/\nCloud\nBlobEndpoint=https://kasoboloauthtest.blob.core.windows.net/;QueueEndpoint=http://kasoboloauthtest.queue.core.windows.net/;FileEndpoint=http://kasoboloauthtest.file.core.windows.net/;BlobSecondaryEndpoint=http://kasoboloauthtest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=http://kasoboloauthtest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=http://kasoboloauthtest-secondary.file.core.windows.net/;AccountName=kasoboloauthtest;AccountKey=Sanitized\n" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobBaseClientTests/Ctor_AzureSasCredential_UserDelegationSASAsync.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobBaseClientTests/Ctor_AzureSasCredential_UserDelegationSASAsync.json new file mode 100644 index 000000000000..72f41e7e4577 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobBaseClientTests/Ctor_AzureSasCredential_UserDelegationSASAsync.json @@ -0,0 +1,179 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasoboloauthtest.blob.core.windows.net/test-container-5ce8f271-38d0-4110-dd86-43f26285f0ee?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-49b9eb5e0637704e9f4177fd7448b640-0d3dcc14e25da546-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20210105.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "6e592982-952d-4cef-1e01-ae7cd756c1e9", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 05 Jan 2021 19:24:53 GMT", + "ETag": "\u00220x8D8B1AF94A01B46\u0022", + "Last-Modified": "Tue, 05 Jan 2021 19:24:54 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "6e592982-952d-4cef-1e01-ae7cd756c1e9", + "x-ms-request-id": "5f912e45-301e-0003-3698-e3090d000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboloauthtest.blob.core.windows.net/test-container-5ce8f271-38d0-4110-dd86-43f26285f0ee/test-blob-074b7ba1-e9a8-f532-6bda-a223ced20965", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "0", + "If-None-Match": "*", + "traceparent": "00-2feb5189fc704f4c973938a313e11ac9-16b0c249591a6b49-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20210105.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "bc9c80eb-b62c-9916-f764-0352f3cb7d4c", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": [], + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Content-MD5": "1B2M2Y8AsgTpgAmY7PhCfg==", + "Date": "Tue, 05 Jan 2021 19:24:53 GMT", + "ETag": "\u00220x8D8B1AF94BD7F7F\u0022", + "Last-Modified": "Tue, 05 Jan 2021 19:24:54 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "bc9c80eb-b62c-9916-f764-0352f3cb7d4c", + "x-ms-content-crc64": "AAAAAAAAAAA=", + "x-ms-request-id": "5f912f15-301e-0003-6b98-e3090d000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboloauthtest.blob.core.windows.net/?restype=service\u0026comp=userdelegationkey", + "RequestMethod": "POST", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "56", + "Content-Type": "application/xml", + "traceparent": "00-e14706569e91294fac4e03ece2ba66f8-9e3d7bb452957d42-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20210105.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "4e383ea4-4c35-1238-6ed6-41c77d6f6c31", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": "\u003CKeyInfo\u003E\u003CExpiry\u003E2021-01-05T20:24:54Z\u003C/Expiry\u003E\u003C/KeyInfo\u003E", + "StatusCode": 200, + "ResponseHeaders": { + "Content-Type": "application/xml", + "Date": "Tue, 05 Jan 2021 19:24:53 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Transfer-Encoding": "chunked", + "x-ms-client-request-id": "4e383ea4-4c35-1238-6ed6-41c77d6f6c31", + "x-ms-request-id": "5f912f48-301e-0003-1b98-e3090d000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": "\uFEFF\u003C?xml version=\u00221.0\u0022 encoding=\u0022utf-8\u0022?\u003E\u003CUserDelegationKey\u003E\u003CSignedOid\u003Ee339aa3f-fc6a-402b-973a-31cd8d64b280\u003C/SignedOid\u003E\u003CSignedTid\u003E72f988bf-86f1-41af-91ab-2d7cd011db47\u003C/SignedTid\u003E\u003CSignedStart\u003E2021-01-05T19:24:54Z\u003C/SignedStart\u003E\u003CSignedExpiry\u003E2021-01-05T20:24:54Z\u003C/SignedExpiry\u003E\u003CSignedService\u003Eb\u003C/SignedService\u003E\u003CSignedVersion\u003E2020-04-08\u003C/SignedVersion\u003E\u003CValue\u003EIp9p6VEV9MLmljLzh8LWlxV\u002BVu8RFDSCE9SbHWE7d8g=\u003C/Value\u003E\u003C/UserDelegationKey\u003E" + }, + { + "RequestUri": "https://kasoboloauthtest.blob.core.windows.net/test-container-5ce8f271-38d0-4110-dd86-43f26285f0ee/test-blob-074b7ba1-e9a8-f532-6bda-a223ced20965?skoid=e339aa3f-fc6a-402b-973a-31cd8d64b280\u0026sktid=72f988bf-86f1-41af-91ab-2d7cd011db47\u0026skt=2021-01-05T19:24:54Z\u0026ske=2021-01-05T20:24:54Z\u0026sks=b\u0026skv=2020-04-08\u0026sv=2020-04-08\u0026se=2021-01-05T20:24:54Z\u0026sr=b\u0026sp=racwdxltme\u0026sig=Sanitized", + "RequestMethod": "HEAD", + "RequestHeaders": { + "traceparent": "00-0369a00e78a0ba469a81d8bf543255ac-5e78d96f3f568147-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20210105.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "b5ada23c-2f93-ab16-10a1-e41047f6a24a", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "0", + "Content-MD5": "1B2M2Y8AsgTpgAmY7PhCfg==", + "Content-Type": "application/octet-stream", + "Date": "Tue, 05 Jan 2021 19:24:54 GMT", + "ETag": "\u00220x8D8B1AF94BD7F7F\u0022", + "Last-Modified": "Tue, 05 Jan 2021 19:24:54 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-access-tier": "Hot", + "x-ms-access-tier-inferred": "true", + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "b5ada23c-2f93-ab16-10a1-e41047f6a24a", + "x-ms-creation-time": "Tue, 05 Jan 2021 19:24:54 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "881e74f3-f01e-0037-2898-e3a6a5000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboloauthtest.blob.core.windows.net/test-container-5ce8f271-38d0-4110-dd86-43f26285f0ee?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-dedecef5130ad446a5d0b4ff0ec95936-8e71eb4094302c4a-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20210105.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "da8afcab-b7c1-cd9e-18dc-73b6fe6b1acc", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Tue, 05 Jan 2021 19:24:54 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "da8afcab-b7c1-cd9e-18dc-73b6fe6b1acc", + "x-ms-request-id": "5f913075-301e-0003-1c98-e3090d000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2021-01-05T11:24:54.7757768-08:00", + "RandomSeed": "1256038034", + "Storage_TestConfigOAuth": "OAuthTenant\nkasoboloauthtest\nU2FuaXRpemVk\nhttps://kasoboloauthtest.blob.core.windows.net\nhttp://kasoboloauthtest.file.core.windows.net\nhttp://kasoboloauthtest.queue.core.windows.net\nhttp://kasoboloauthtest.table.core.windows.net\n\n\n\n\nhttp://kasoboloauthtest-secondary.blob.core.windows.net\nhttp://kasoboloauthtest-secondary.file.core.windows.net\nhttp://kasoboloauthtest-secondary.queue.core.windows.net\nhttp://kasoboloauthtest-secondary.table.core.windows.net\nc6b5fe1a-9b59-4975-92c4-d9f728c3c371\nSanitized\n72f988bf-86f1-41af-91ab-2d7cd011db47\nhttps://login.microsoftonline.com/\nCloud\nBlobEndpoint=https://kasoboloauthtest.blob.core.windows.net/;QueueEndpoint=http://kasoboloauthtest.queue.core.windows.net/;FileEndpoint=http://kasoboloauthtest.file.core.windows.net/;BlobSecondaryEndpoint=http://kasoboloauthtest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=http://kasoboloauthtest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=http://kasoboloauthtest-secondary.file.core.windows.net/;AccountName=kasoboloauthtest;AccountKey=Sanitized\n" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobBaseClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobBaseClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json new file mode 100644 index 000000000000..e3c1fad2c0a2 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobBaseClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json @@ -0,0 +1,72 @@ +{ + "Entries": [ + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-590b471e-15e1-38f4-b268-0397db04359f?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-1d27dda67bb71c488beb915faded8082-5b14a492c5faa341-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "c3b5fcab-3923-0270-3a0d-350703489d33", + "x-ms-date": "Fri, 18 Dec 2020 21:03:39 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:03:38 GMT", + "ETag": "\u00220x8D8A39864C73D1D\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:03:39 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "c3b5fcab-3923-0270-3a0d-350703489d33", + "x-ms-request-id": "589f686a-001e-0047-1281-d58b98000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-590b471e-15e1-38f4-b268-0397db04359f?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-34b16d0857ee2e4ca234a051cc681b2b-fd025bbe7ea58f40-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "deec8144-724e-087c-153e-67c0a0d8d2de", + "x-ms-date": "Fri, 18 Dec 2020 21:03:39 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:03:38 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "deec8144-724e-087c-153e-67c0a0d8d2de", + "x-ms-request-id": "589f68e0-001e-0047-8081-d58b98000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T13:03:39.4960938-08:00", + "RandomSeed": "539016032", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttp://kasoboltest.blob.core.windows.net\nhttp://kasoboltest.file.core.windows.net\nhttp://kasoboltest.queue.core.windows.net\nhttp://kasoboltest.table.core.windows.net\n\n\n\n\nhttp://kasoboltest-secondary.blob.core.windows.net\nhttp://kasoboltest-secondary.file.core.windows.net\nhttp://kasoboltest-secondary.queue.core.windows.net\nhttp://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=http://kasoboltest.blob.core.windows.net/;QueueEndpoint=http://kasoboltest.queue.core.windows.net/;FileEndpoint=http://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=http://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=http://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=http://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobBaseClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobBaseClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json new file mode 100644 index 000000000000..ad86cb364277 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobBaseClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json @@ -0,0 +1,72 @@ +{ + "Entries": [ + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-2dd3dcaa-f51c-a08f-ceda-1621ea591f11?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-51520bbe8b8fb6489546201eab7bd883-7543c5ae47a03748-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "059fde2e-2d03-77b2-2c72-d729bafacc78", + "x-ms-date": "Fri, 18 Dec 2020 21:03:39 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:03:38 GMT", + "ETag": "\u00220x8D8A39864FD982C\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:03:39 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "059fde2e-2d03-77b2-2c72-d729bafacc78", + "x-ms-request-id": "179b76df-401e-0026-3b81-d5cf47000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-2dd3dcaa-f51c-a08f-ceda-1621ea591f11?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-30371133ec83f341940da57c9245b977-00dfa74202bf4041-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "0cf2c58c-1aba-fb0e-ef42-e662e1a77a8b", + "x-ms-date": "Fri, 18 Dec 2020 21:03:39 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:03:38 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "0cf2c58c-1aba-fb0e-ef42-e662e1a77a8b", + "x-ms-request-id": "179b7702-401e-0026-5b81-d5cf47000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T13:03:39.8100954-08:00", + "RandomSeed": "845943507", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttp://kasoboltest.blob.core.windows.net\nhttp://kasoboltest.file.core.windows.net\nhttp://kasoboltest.queue.core.windows.net\nhttp://kasoboltest.table.core.windows.net\n\n\n\n\nhttp://kasoboltest-secondary.blob.core.windows.net\nhttp://kasoboltest-secondary.file.core.windows.net\nhttp://kasoboltest-secondary.queue.core.windows.net\nhttp://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=http://kasoboltest.blob.core.windows.net/;QueueEndpoint=http://kasoboltest.queue.core.windows.net/;FileEndpoint=http://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=http://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=http://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=http://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/Ctor_AzureSasCredential.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/Ctor_AzureSasCredential.json new file mode 100644 index 000000000000..8c8562397a88 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/Ctor_AzureSasCredential.json @@ -0,0 +1,151 @@ +{ + "Entries": [ + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-e2832bab-000a-068d-091a-cfdd5a0b47cb?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-101e5d38a3736e40ba93b653785490a8-617bbdcad0e75845-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "66388100-a8e3-894c-72eb-17a3ccd4780a", + "x-ms-date": "Fri, 18 Dec 2020 21:18:50 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:18:49 GMT", + "ETag": "\u00220x8D8A39A83BD475A\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:18:50 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "66388100-a8e3-894c-72eb-17a3ccd4780a", + "x-ms-request-id": "8c16793d-801e-0012-4b83-d560ef000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-e2832bab-000a-068d-091a-cfdd5a0b47cb/test-blob-48868923-e6fc-d568-9a28-abc39ef36b70", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "0", + "If-None-Match": "*", + "traceparent": "00-91ae7545c0d0b84ab8697c2db3556312-4417a583de095145-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "117756ce-b613-1aea-1963-cbbbfd89ea7f", + "x-ms-date": "Fri, 18 Dec 2020 21:18:50 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": [], + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Content-MD5": "1B2M2Y8AsgTpgAmY7PhCfg==", + "Date": "Fri, 18 Dec 2020 21:18:49 GMT", + "ETag": "\u00220x8D8A39A83E0A52A\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:18:50 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "117756ce-b613-1aea-1963-cbbbfd89ea7f", + "x-ms-content-crc64": "AAAAAAAAAAA=", + "x-ms-request-id": "8c1679ad-801e-0012-3283-d560ef000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-e2832bab-000a-068d-091a-cfdd5a0b47cb/test-blob-48868923-e6fc-d568-9a28-abc39ef36b70?sv=2020-04-08\u0026st=2020-12-18T20:18:50Z\u0026se=2020-12-18T22:18:50Z\u0026sr=c\u0026sp=racwdxlt\u0026sig=Sanitized", + "RequestMethod": "HEAD", + "RequestHeaders": { + "traceparent": "00-e34bd4f64b51044986877a065163bc63-1cc00bba9a94244d-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "47f44998-5a7b-645d-ffc3-bf6f142c2ffe", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "0", + "Content-MD5": "1B2M2Y8AsgTpgAmY7PhCfg==", + "Content-Type": "application/octet-stream", + "Date": "Fri, 18 Dec 2020 21:18:50 GMT", + "ETag": "\u00220x8D8A39A83E0A52A\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:18:50 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Vary": "Origin", + "x-ms-access-tier": "Hot", + "x-ms-access-tier-inferred": "true", + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "47f44998-5a7b-645d-ffc3-bf6f142c2ffe", + "x-ms-creation-time": "Fri, 18 Dec 2020 21:18:50 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "ed7438a4-701e-006a-7b83-d50858000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-e2832bab-000a-068d-091a-cfdd5a0b47cb?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-49ac1557d6764a43a32c4f126f7e94e5-408886750b371f44-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "b3221e4c-a394-2603-4a23-e334dfc82e74", + "x-ms-date": "Fri, 18 Dec 2020 21:18:50 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:18:50 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "b3221e4c-a394-2603-4a23-e334dfc82e74", + "x-ms-request-id": "8c1679fc-801e-0012-7783-d560ef000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T13:18:50.4648211-08:00", + "RandomSeed": "334805098", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttp://kasoboltest.blob.core.windows.net\nhttp://kasoboltest.file.core.windows.net\nhttp://kasoboltest.queue.core.windows.net\nhttp://kasoboltest.table.core.windows.net\n\n\n\n\nhttp://kasoboltest-secondary.blob.core.windows.net\nhttp://kasoboltest-secondary.file.core.windows.net\nhttp://kasoboltest-secondary.queue.core.windows.net\nhttp://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=http://kasoboltest.blob.core.windows.net/;QueueEndpoint=http://kasoboltest.queue.core.windows.net/;FileEndpoint=http://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=http://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=http://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=http://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/Ctor_AzureSasCredentialAsync.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/Ctor_AzureSasCredentialAsync.json new file mode 100644 index 000000000000..b407a8bdbe50 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/Ctor_AzureSasCredentialAsync.json @@ -0,0 +1,151 @@ +{ + "Entries": [ + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-6010c889-af3f-a23c-af1c-344962f24e61?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-413b57ea5ce27343a19c5c73cf03d79f-b40531a5b34be84b-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "e4f9faef-5d71-3198-83f3-4545f27c62b4", + "x-ms-date": "Fri, 18 Dec 2020 21:18:50 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:18:50 GMT", + "ETag": "\u00220x8D8A39A840FB2DD\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:18:50 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "e4f9faef-5d71-3198-83f3-4545f27c62b4", + "x-ms-request-id": "f4b813c5-701e-0048-1883-d5666e000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-6010c889-af3f-a23c-af1c-344962f24e61/test-blob-c0acb495-5c55-9abb-2b5b-5c377fc87bcb", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "0", + "If-None-Match": "*", + "traceparent": "00-0f2223a13b8d9c4b8d74bffb31db355e-79d3357b3991ac4a-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "72df7ba5-4937-935b-3e5e-b8150060b2ba", + "x-ms-date": "Fri, 18 Dec 2020 21:18:50 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": [], + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Content-MD5": "1B2M2Y8AsgTpgAmY7PhCfg==", + "Date": "Fri, 18 Dec 2020 21:18:50 GMT", + "ETag": "\u00220x8D8A39A841579FE\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:18:50 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "72df7ba5-4937-935b-3e5e-b8150060b2ba", + "x-ms-content-crc64": "AAAAAAAAAAA=", + "x-ms-request-id": "f4b813d7-701e-0048-2783-d5666e000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-6010c889-af3f-a23c-af1c-344962f24e61/test-blob-c0acb495-5c55-9abb-2b5b-5c377fc87bcb?sv=2020-04-08\u0026st=2020-12-18T20:18:50Z\u0026se=2020-12-18T22:18:50Z\u0026sr=c\u0026sp=racwdxlt\u0026sig=Sanitized", + "RequestMethod": "HEAD", + "RequestHeaders": { + "traceparent": "00-64c636a8dd5b7b44bd11af8dee5624f4-b5b60af42cbdd14b-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "0392d69a-08e9-c893-27c7-299ab1da2821", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "0", + "Content-MD5": "1B2M2Y8AsgTpgAmY7PhCfg==", + "Content-Type": "application/octet-stream", + "Date": "Fri, 18 Dec 2020 21:18:50 GMT", + "ETag": "\u00220x8D8A39A841579FE\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:18:50 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Vary": "Origin", + "x-ms-access-tier": "Hot", + "x-ms-access-tier-inferred": "true", + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "0392d69a-08e9-c893-27c7-299ab1da2821", + "x-ms-creation-time": "Fri, 18 Dec 2020 21:18:50 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "2664ea82-501e-001b-0a83-d57a61000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-6010c889-af3f-a23c-af1c-344962f24e61?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-4c42b2cf94134f46aca74bbe28720624-346544d823b78b42-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "2a7be36e-aecd-6fd1-e66a-485bd12079ea", + "x-ms-date": "Fri, 18 Dec 2020 21:18:51 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:18:50 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "2a7be36e-aecd-6fd1-e66a-485bd12079ea", + "x-ms-request-id": "f4b81413-701e-0048-6083-d5666e000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T13:18:50.9338201-08:00", + "RandomSeed": "1128672756", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttp://kasoboltest.blob.core.windows.net\nhttp://kasoboltest.file.core.windows.net\nhttp://kasoboltest.queue.core.windows.net\nhttp://kasoboltest.table.core.windows.net\n\n\n\n\nhttp://kasoboltest-secondary.blob.core.windows.net\nhttp://kasoboltest-secondary.file.core.windows.net\nhttp://kasoboltest-secondary.queue.core.windows.net\nhttp://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=http://kasoboltest.blob.core.windows.net/;QueueEndpoint=http://kasoboltest.queue.core.windows.net/;FileEndpoint=http://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=http://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=http://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=http://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json new file mode 100644 index 000000000000..44ffc6ee33f8 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json @@ -0,0 +1,72 @@ +{ + "Entries": [ + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-38a1bb97-46d2-a500-b41a-b78a2f910c6a?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-02c627725075f141a340cb6804d0ebcb-cdd34e7f34157d48-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "4393ba08-1415-ee82-fe1e-5d1a14dd72b7", + "x-ms-date": "Fri, 18 Dec 2020 21:19:15 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:19:15 GMT", + "ETag": "\u00220x8D8A39A92C41FE2\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:19:15 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "4393ba08-1415-ee82-fe1e-5d1a14dd72b7", + "x-ms-request-id": "aa2ca8bb-401e-0004-6e83-d5a171000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-38a1bb97-46d2-a500-b41a-b78a2f910c6a?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-8141b9cfd507b143a7c5c041fc76e247-47141434fefdf64b-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "7582e794-c9fd-0354-2825-58671cd92002", + "x-ms-date": "Fri, 18 Dec 2020 21:19:15 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:19:15 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "7582e794-c9fd-0354-2825-58671cd92002", + "x-ms-request-id": "aa2ca93a-401e-0004-5d83-d5a171000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T13:19:15.6864583-08:00", + "RandomSeed": "1267603308", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttp://kasoboltest.blob.core.windows.net\nhttp://kasoboltest.file.core.windows.net\nhttp://kasoboltest.queue.core.windows.net\nhttp://kasoboltest.table.core.windows.net\n\n\n\n\nhttp://kasoboltest-secondary.blob.core.windows.net\nhttp://kasoboltest-secondary.file.core.windows.net\nhttp://kasoboltest-secondary.queue.core.windows.net\nhttp://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=http://kasoboltest.blob.core.windows.net/;QueueEndpoint=http://kasoboltest.queue.core.windows.net/;FileEndpoint=http://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=http://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=http://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=http://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json new file mode 100644 index 000000000000..6d8a94c7c5cb --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json @@ -0,0 +1,72 @@ +{ + "Entries": [ + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-d85e8934-d465-6b4e-13ad-3d828bfb3b97?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-fdb04bc646ec4f499b7e7e6d0e1bf933-72d8190858ff6f41-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "88016155-e863-e4d0-3199-cce066d3618d", + "x-ms-date": "Fri, 18 Dec 2020 21:19:15 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:19:15 GMT", + "ETag": "\u00220x8D8A39A92FE0D9C\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:19:15 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "88016155-e863-e4d0-3199-cce066d3618d", + "x-ms-request-id": "68ed05b1-301e-0000-7b83-d554f3000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-d85e8934-d465-6b4e-13ad-3d828bfb3b97?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-003e912cb518e74fb3abca6995112a2f-e1dd5ec5791bae4d-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "2a2c5b82-b3fa-8b33-99a7-7998b5484db0", + "x-ms-date": "Fri, 18 Dec 2020 21:19:15 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:19:15 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "2a2c5b82-b3fa-8b33-99a7-7998b5484db0", + "x-ms-request-id": "68ed05d4-301e-0000-1783-d554f3000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T13:19:15.9854534-08:00", + "RandomSeed": "152962535", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttp://kasoboltest.blob.core.windows.net\nhttp://kasoboltest.file.core.windows.net\nhttp://kasoboltest.queue.core.windows.net\nhttp://kasoboltest.table.core.windows.net\n\n\n\n\nhttp://kasoboltest-secondary.blob.core.windows.net\nhttp://kasoboltest-secondary.file.core.windows.net\nhttp://kasoboltest-secondary.queue.core.windows.net\nhttp://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=http://kasoboltest.blob.core.windows.net/;QueueEndpoint=http://kasoboltest.queue.core.windows.net/;FileEndpoint=http://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=http://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=http://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=http://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/Ctor_AzureSasCredential.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/Ctor_AzureSasCredential.json new file mode 100644 index 000000000000..8e9b46c20776 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/Ctor_AzureSasCredential.json @@ -0,0 +1,151 @@ +{ + "Entries": [ + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-e73a5e1e-dfff-9a91-0503-1e63bf61e3f6?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-f07c2f44c61004498545d777e907ec41-dc47e30b1779ec40-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "05b38768-2632-1993-9a12-5d4a0e21f5b2", + "x-ms-date": "Fri, 18 Dec 2020 21:20:17 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:20:17 GMT", + "ETag": "\u00220x8D8A39AB7EDE857\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:20:17 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "05b38768-2632-1993-9a12-5d4a0e21f5b2", + "x-ms-request-id": "00f8c72b-d01e-000a-4183-d54d7a000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-e73a5e1e-dfff-9a91-0503-1e63bf61e3f6/test-blob-e5900d34-3990-3711-76d8-0bcb09c0690f", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "0", + "If-None-Match": "*", + "traceparent": "00-8b70f620bec9e84691c43d0f3bfce04a-70ced5df1a44df49-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "229c233e-c065-2f04-767b-8e5a1bc70fda", + "x-ms-date": "Fri, 18 Dec 2020 21:20:18 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": [], + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Content-MD5": "1B2M2Y8AsgTpgAmY7PhCfg==", + "Date": "Fri, 18 Dec 2020 21:20:18 GMT", + "ETag": "\u00220x8D8A39AB811FD70\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:20:18 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "229c233e-c065-2f04-767b-8e5a1bc70fda", + "x-ms-content-crc64": "AAAAAAAAAAA=", + "x-ms-request-id": "00f8c773-d01e-000a-0383-d54d7a000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-e73a5e1e-dfff-9a91-0503-1e63bf61e3f6/test-blob-e5900d34-3990-3711-76d8-0bcb09c0690f?sv=2020-04-08\u0026st=2020-12-18T20:20:18Z\u0026se=2020-12-18T22:20:18Z\u0026sr=c\u0026sp=racwdxlt\u0026sig=Sanitized", + "RequestMethod": "HEAD", + "RequestHeaders": { + "traceparent": "00-5f7891834cac884d81d6bb1c3f238234-a16c6b661a98ab41-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "e68c4f84-4723-9eaa-85cb-c1324f69ddfe", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "0", + "Content-MD5": "1B2M2Y8AsgTpgAmY7PhCfg==", + "Content-Type": "application/octet-stream", + "Date": "Fri, 18 Dec 2020 21:20:17 GMT", + "ETag": "\u00220x8D8A39AB811FD70\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:20:18 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Vary": "Origin", + "x-ms-access-tier": "Hot", + "x-ms-access-tier-inferred": "true", + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "e68c4f84-4723-9eaa-85cb-c1324f69ddfe", + "x-ms-creation-time": "Fri, 18 Dec 2020 21:20:18 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "7ae4a967-401e-002d-1683-d5d733000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-e73a5e1e-dfff-9a91-0503-1e63bf61e3f6?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-cc98dc36a09b8f4e9e31fd434a513cfa-df6bf255f60bed4c-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "cbd5b4cd-293a-61b7-a24e-fe5afcd106e0", + "x-ms-date": "Fri, 18 Dec 2020 21:20:18 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:20:18 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "cbd5b4cd-293a-61b7-a24e-fe5afcd106e0", + "x-ms-request-id": "00f8c7ce-d01e-000a-5183-d54d7a000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T13:20:18.0156509-08:00", + "RandomSeed": "1215651971", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttp://kasoboltest.blob.core.windows.net\nhttp://kasoboltest.file.core.windows.net\nhttp://kasoboltest.queue.core.windows.net\nhttp://kasoboltest.table.core.windows.net\n\n\n\n\nhttp://kasoboltest-secondary.blob.core.windows.net\nhttp://kasoboltest-secondary.file.core.windows.net\nhttp://kasoboltest-secondary.queue.core.windows.net\nhttp://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=http://kasoboltest.blob.core.windows.net/;QueueEndpoint=http://kasoboltest.queue.core.windows.net/;FileEndpoint=http://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=http://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=http://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=http://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/Ctor_AzureSasCredentialAsync.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/Ctor_AzureSasCredentialAsync.json new file mode 100644 index 000000000000..bc61fccb1bc2 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/Ctor_AzureSasCredentialAsync.json @@ -0,0 +1,151 @@ +{ + "Entries": [ + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-9ac6c1eb-e2dc-d88f-67f2-11618a33a5d0?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-1df3e8ac5731c74b91597606f0115203-6a3a46ec156bcb4d-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "7fef2f8e-fb5e-3fd3-4103-be3b99840faa", + "x-ms-date": "Fri, 18 Dec 2020 21:20:18 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:20:17 GMT", + "ETag": "\u00220x8D8A39AB84FD3C4\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:20:18 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "7fef2f8e-fb5e-3fd3-4103-be3b99840faa", + "x-ms-request-id": "7f301c4b-c01e-0051-5d83-d54a06000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-9ac6c1eb-e2dc-d88f-67f2-11618a33a5d0/test-blob-f48a8511-d70c-10ae-111d-372f8b9272c7", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "0", + "If-None-Match": "*", + "traceparent": "00-ad509a993b45354c937215d157de5aa0-e1be5e644baac44e-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "dfebac9e-3f15-b712-80df-6d40c4a3b3af", + "x-ms-date": "Fri, 18 Dec 2020 21:20:18 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": [], + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Content-MD5": "1B2M2Y8AsgTpgAmY7PhCfg==", + "Date": "Fri, 18 Dec 2020 21:20:17 GMT", + "ETag": "\u00220x8D8A39AB855C8E9\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:20:18 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "dfebac9e-3f15-b712-80df-6d40c4a3b3af", + "x-ms-content-crc64": "AAAAAAAAAAA=", + "x-ms-request-id": "7f301c6b-c01e-0051-7a83-d54a06000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-9ac6c1eb-e2dc-d88f-67f2-11618a33a5d0/test-blob-f48a8511-d70c-10ae-111d-372f8b9272c7?sv=2020-04-08\u0026st=2020-12-18T20:20:18Z\u0026se=2020-12-18T22:20:18Z\u0026sr=c\u0026sp=racwdxlt\u0026sig=Sanitized", + "RequestMethod": "HEAD", + "RequestHeaders": { + "traceparent": "00-4b230595cf504846bc7c3d03d90e9e4d-da18b7991e54344a-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "de91580f-92a7-7eb2-e01c-da64b831b584", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "0", + "Content-MD5": "1B2M2Y8AsgTpgAmY7PhCfg==", + "Content-Type": "application/octet-stream", + "Date": "Fri, 18 Dec 2020 21:20:18 GMT", + "ETag": "\u00220x8D8A39AB855C8E9\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:20:18 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Vary": "Origin", + "x-ms-access-tier": "Hot", + "x-ms-access-tier-inferred": "true", + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "de91580f-92a7-7eb2-e01c-da64b831b584", + "x-ms-creation-time": "Fri, 18 Dec 2020 21:20:18 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "241fadbc-e01e-004d-1883-d59211000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-9ac6c1eb-e2dc-d88f-67f2-11618a33a5d0?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-2639ee34156ed24faade216f68277837-3091acf1b5e57b40-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "6c31d1ec-d512-fe07-45ff-c694d90232e2", + "x-ms-date": "Fri, 18 Dec 2020 21:20:18 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:20:17 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "6c31d1ec-d512-fe07-45ff-c694d90232e2", + "x-ms-request-id": "7f301cad-c01e-0051-3883-d54a06000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T13:20:18.5976516-08:00", + "RandomSeed": "1283604230", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttp://kasoboltest.blob.core.windows.net\nhttp://kasoboltest.file.core.windows.net\nhttp://kasoboltest.queue.core.windows.net\nhttp://kasoboltest.table.core.windows.net\n\n\n\n\nhttp://kasoboltest-secondary.blob.core.windows.net\nhttp://kasoboltest-secondary.file.core.windows.net\nhttp://kasoboltest-secondary.queue.core.windows.net\nhttp://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=http://kasoboltest.blob.core.windows.net/;QueueEndpoint=http://kasoboltest.queue.core.windows.net/;FileEndpoint=http://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=http://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=http://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=http://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json new file mode 100644 index 000000000000..76458585bf2b --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json @@ -0,0 +1,72 @@ +{ + "Entries": [ + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-2cdcc9ce-7f14-3ade-52fe-d3de0479510d?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-d1faf3afac1e2c459cf1bbd3ed2bb87a-d26ab89944fca647-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "1f559575-629e-83a9-67c0-0c37f713217d", + "x-ms-date": "Fri, 18 Dec 2020 21:20:37 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:20:37 GMT", + "ETag": "\u00220x8D8A39AC3940D61\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:20:37 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "1f559575-629e-83a9-67c0-0c37f713217d", + "x-ms-request-id": "ac112daa-201e-003d-0883-d5e1d5000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-2cdcc9ce-7f14-3ade-52fe-d3de0479510d?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-a8a2c2195bf7a844afa6df557966ca46-a5f2da9f29e8924b-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "6f699b06-3123-436e-65c9-409ca8222e7f", + "x-ms-date": "Fri, 18 Dec 2020 21:20:37 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:20:37 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "6f699b06-3123-436e-65c9-409ca8222e7f", + "x-ms-request-id": "ac112e36-201e-003d-0483-d5e1d5000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T13:20:37.5682812-08:00", + "RandomSeed": "888410800", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttp://kasoboltest.blob.core.windows.net\nhttp://kasoboltest.file.core.windows.net\nhttp://kasoboltest.queue.core.windows.net\nhttp://kasoboltest.table.core.windows.net\n\n\n\n\nhttp://kasoboltest-secondary.blob.core.windows.net\nhttp://kasoboltest-secondary.file.core.windows.net\nhttp://kasoboltest-secondary.queue.core.windows.net\nhttp://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=http://kasoboltest.blob.core.windows.net/;QueueEndpoint=http://kasoboltest.queue.core.windows.net/;FileEndpoint=http://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=http://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=http://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=http://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json new file mode 100644 index 000000000000..fb6351b25631 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/BlockBlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json @@ -0,0 +1,72 @@ +{ + "Entries": [ + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-ba847f0b-1cf8-6bdc-d4c3-c810af21ecee?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-1ed3aa7570645647a83dfd8efa189f82-57599b3797f2b940-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "81ecab93-a689-d376-1881-5af134629447", + "x-ms-date": "Fri, 18 Dec 2020 21:20:37 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:20:37 GMT", + "ETag": "\u00220x8D8A39AC3D169D5\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:20:37 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "81ecab93-a689-d376-1881-5af134629447", + "x-ms-request-id": "02e6d3f2-301e-0066-5d83-d5e6a9000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-ba847f0b-1cf8-6bdc-d4c3-c810af21ecee?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-4fb509bc2ab3914699ece810dbc798d2-6f0cceba2c74f244-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "037c23f3-6b34-7b64-1ac1-c449ea085a69", + "x-ms-date": "Fri, 18 Dec 2020 21:20:37 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:20:37 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "037c23f3-6b34-7b64-1ac1-c449ea085a69", + "x-ms-request-id": "02e6d40e-301e-0066-7783-d5e6a9000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T13:20:37.9102803-08:00", + "RandomSeed": "1801766066", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttp://kasoboltest.blob.core.windows.net\nhttp://kasoboltest.file.core.windows.net\nhttp://kasoboltest.queue.core.windows.net\nhttp://kasoboltest.table.core.windows.net\n\n\n\n\nhttp://kasoboltest-secondary.blob.core.windows.net\nhttp://kasoboltest-secondary.file.core.windows.net\nhttp://kasoboltest-secondary.queue.core.windows.net\nhttp://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=http://kasoboltest.blob.core.windows.net/;QueueEndpoint=http://kasoboltest.queue.core.windows.net/;FileEndpoint=http://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=http://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=http://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=http://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ContainerClientTests/Ctor_AzureSasCredential.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ContainerClientTests/Ctor_AzureSasCredential.json new file mode 100644 index 000000000000..62e653638710 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ContainerClientTests/Ctor_AzureSasCredential.json @@ -0,0 +1,110 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasoboltest.blob.core.windows.net/test-container-2996eaf8-e910-31d5-fab3-ca6486bea000?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-028532a8eee596419f040a69090576b4-c2d6743beeb15949-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "e3400fb9-9a09-517b-7e6e-c1739c94711c", + "x-ms-date": "Fri, 18 Dec 2020 21:39:38 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:39:38 GMT", + "ETag": "\u00220x8D8A39D6BBDAEB9\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:39:38 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "e3400fb9-9a09-517b-7e6e-c1739c94711c", + "x-ms-request-id": "c3d9a829-c01e-005a-3d86-d55272000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.blob.core.windows.net/test-container-2996eaf8-e910-31d5-fab3-ca6486bea000?restype=container\u0026sv=2020-04-08\u0026ss=bfqt\u0026srt=sco\u0026spr=https\u0026se=2020-12-18T22:39:38Z\u0026sp=rwdxlacuptf\u0026sig=Sanitized", + "RequestMethod": "GET", + "RequestHeaders": { + "traceparent": "00-a4fb366d82c808418693ba842b29ec92-804d54b10067574a-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "76aa7e4a-bc7d-43f6-c9a0-7b43674cb65b", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Access-Control-Allow-Origin": "*", + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:39:38 GMT", + "ETag": "\u00220x8D8A39D6BBDAEB9\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:39:38 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "76aa7e4a-bc7d-43f6-c9a0-7b43674cb65b", + "x-ms-default-encryption-scope": "$account-encryption-key", + "x-ms-deny-encryption-scope-override": "false", + "x-ms-has-immutability-policy": "false", + "x-ms-has-legal-hold": "false", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "4ee402c9-701e-002e-2b86-d5d434000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.blob.core.windows.net/test-container-2996eaf8-e910-31d5-fab3-ca6486bea000?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-783a75c38d7f854290194cdc38f19d27-f84a630826a78741-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "1e2923c5-faea-909e-b8d3-abc5c2ad68dd", + "x-ms-date": "Fri, 18 Dec 2020 21:39:38 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:39:38 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "1e2923c5-faea-909e-b8d3-abc5c2ad68dd", + "x-ms-request-id": "c3d9a893-c01e-005a-2086-d55272000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T13:39:38.6783605-08:00", + "RandomSeed": "1533579923", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ContainerClientTests/Ctor_AzureSasCredentialAsync.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ContainerClientTests/Ctor_AzureSasCredentialAsync.json new file mode 100644 index 000000000000..e02af425955d --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ContainerClientTests/Ctor_AzureSasCredentialAsync.json @@ -0,0 +1,110 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasoboltest.blob.core.windows.net/test-container-0d1ae0e9-f22f-bcc3-76e7-4560ee1f3cd1?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-e3b7639cdc924f40b6d0be62bd3a20fd-5490214cb888d24c-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "62ad3711-a064-098b-f40f-c14cfec26aa9", + "x-ms-date": "Fri, 18 Dec 2020 21:39:38 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:39:38 GMT", + "ETag": "\u00220x8D8A39D6BFA6E2D\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:39:38 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "62ad3711-a064-098b-f40f-c14cfec26aa9", + "x-ms-request-id": "ebcb9112-301e-0029-4d86-d522b1000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.blob.core.windows.net/test-container-0d1ae0e9-f22f-bcc3-76e7-4560ee1f3cd1?restype=container\u0026sv=2020-04-08\u0026ss=bfqt\u0026srt=sco\u0026spr=https\u0026se=2020-12-18T22:39:39Z\u0026sp=rwdxlacuptf\u0026sig=Sanitized", + "RequestMethod": "GET", + "RequestHeaders": { + "traceparent": "00-d35d8bb851424b468c7b55ba70144ec4-b78207577c01e94c-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "b64fd92a-d972-eb6c-75c7-f64a8e3fa6a7", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Access-Control-Allow-Origin": "*", + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:39:38 GMT", + "ETag": "\u00220x8D8A39D6BFA6E2D\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:39:38 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "b64fd92a-d972-eb6c-75c7-f64a8e3fa6a7", + "x-ms-default-encryption-scope": "$account-encryption-key", + "x-ms-deny-encryption-scope-override": "false", + "x-ms-has-immutability-policy": "false", + "x-ms-has-legal-hold": "false", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "0b5fd9a3-701e-0025-0c86-d5cc40000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.blob.core.windows.net/test-container-0d1ae0e9-f22f-bcc3-76e7-4560ee1f3cd1?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-28ad6e8447fb3e41b82efdaafbef7d59-074cbc02b7e9674f-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "242180b9-b373-8f37-0ec8-895dab810a16", + "x-ms-date": "Fri, 18 Dec 2020 21:39:39 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:39:39 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "242180b9-b373-8f37-0ec8-895dab810a16", + "x-ms-request-id": "ebcb9176-301e-0029-2386-d522b1000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T13:39:39.0323569-08:00", + "RandomSeed": "838095187", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ContainerClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ContainerClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json new file mode 100644 index 000000000000..e73e8ff8f147 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ContainerClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json @@ -0,0 +1,76 @@ +{ + "Entries": [ + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-84456bdd-3760-dfb4-a193-525cdf6648bd?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-413c94f3bce64c4e8dfa7e55c9ce67f6-55176287f8c0bc47-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "e9819272-6f8e-c49d-981e-8cf5720b2a53", + "x-ms-date": "Fri, 18 Dec 2020 21:38:02 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 409, + "ResponseHeaders": { + "Content-Length": "230", + "Content-Type": "application/xml", + "Date": "Fri, 18 Dec 2020 21:38:01 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "e9819272-6f8e-c49d-981e-8cf5720b2a53", + "x-ms-error-code": "ContainerAlreadyExists", + "x-ms-request-id": "c812f317-c01e-003c-6f86-d5e028000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [ + "\uFEFF\u003C?xml version=\u00221.0\u0022 encoding=\u0022utf-8\u0022?\u003E\u003CError\u003E\u003CCode\u003EContainerAlreadyExists\u003C/Code\u003E\u003CMessage\u003EThe specified container already exists.\n", + "RequestId:c812f317-c01e-003c-6f86-d5e028000000\n", + "Time:2020-12-18T21:38:02.7595056Z\u003C/Message\u003E\u003C/Error\u003E" + ] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-84456bdd-3760-dfb4-a193-525cdf6648bd?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-e9cb2cfb9005a644ba0e60fb056d6579-f60f93e9517e0f45-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "4ce98b25-5ee4-be2f-23ae-73650cc35baa", + "x-ms-date": "Fri, 18 Dec 2020 21:38:02 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:38:01 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "4ce98b25-5ee4-be2f-23ae-73650cc35baa", + "x-ms-request-id": "c812f3c2-c01e-003c-1286-d5e028000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T13:38:02.8866037-08:00", + "RandomSeed": "673124298", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttp://kasoboltest.blob.core.windows.net\nhttp://kasoboltest.file.core.windows.net\nhttp://kasoboltest.queue.core.windows.net\nhttp://kasoboltest.table.core.windows.net\n\n\n\n\nhttp://kasoboltest-secondary.blob.core.windows.net\nhttp://kasoboltest-secondary.file.core.windows.net\nhttp://kasoboltest-secondary.queue.core.windows.net\nhttp://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=http://kasoboltest.blob.core.windows.net/;QueueEndpoint=http://kasoboltest.queue.core.windows.net/;FileEndpoint=http://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=http://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=http://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=http://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ContainerClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ContainerClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json new file mode 100644 index 000000000000..1d2f9b9c6f31 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ContainerClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json @@ -0,0 +1,72 @@ +{ + "Entries": [ + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-79ea7a2d-2c2f-00f1-f87d-5e1edb8978db?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-0971cf136d4d234c809d7911b9f96620-266b39673ecf3040-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "4cc563f9-0540-262d-cd79-adf2e9e1ba15", + "x-ms-date": "Fri, 18 Dec 2020 21:38:03 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:38:03 GMT", + "ETag": "\u00220x8D8A39D32DD5121\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:38:03 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "4cc563f9-0540-262d-cd79-adf2e9e1ba15", + "x-ms-request-id": "bf997553-201e-0050-0686-d54bfb000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-79ea7a2d-2c2f-00f1-f87d-5e1edb8978db?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-63d2d35911bb2d4e8b7162ffda7729f7-22b29b84ef94774e-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "7724d3ef-2bc4-8e9a-8b5c-12f18a253dba", + "x-ms-date": "Fri, 18 Dec 2020 21:38:03 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:38:03 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "7724d3ef-2bc4-8e9a-8b5c-12f18a253dba", + "x-ms-request-id": "bf997599-201e-0050-4486-d54bfb000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T13:38:03.2145978-08:00", + "RandomSeed": "97127170", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttp://kasoboltest.blob.core.windows.net\nhttp://kasoboltest.file.core.windows.net\nhttp://kasoboltest.queue.core.windows.net\nhttp://kasoboltest.table.core.windows.net\n\n\n\n\nhttp://kasoboltest-secondary.blob.core.windows.net\nhttp://kasoboltest-secondary.file.core.windows.net\nhttp://kasoboltest-secondary.queue.core.windows.net\nhttp://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=http://kasoboltest.blob.core.windows.net/;QueueEndpoint=http://kasoboltest.queue.core.windows.net/;FileEndpoint=http://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=http://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=http://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=http://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/Ctor_AzureSasCredential.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/Ctor_AzureSasCredential.json new file mode 100644 index 000000000000..c09748de3265 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/Ctor_AzureSasCredential.json @@ -0,0 +1,147 @@ +{ + "Entries": [ + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-42a815a0-4bb8-6331-2ba2-b22901918183?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-919ba83ae3edc845aee74b836b8a3331-1830c001d079ea47-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "a2a7440c-6f51-bd71-39a0-72fe4f063141", + "x-ms-date": "Fri, 18 Dec 2020 21:22:04 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:22:04 GMT", + "ETag": "\u00220x8D8A39AF7BA5553\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:22:04 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "a2a7440c-6f51-bd71-39a0-72fe4f063141", + "x-ms-request-id": "74e924a0-501e-0054-3683-d5be79000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-42a815a0-4bb8-6331-2ba2-b22901918183/test-blob-cbc84734-1bd7-6302-cf68-9dc91d1d8b58", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "0", + "traceparent": "00-4c754df11df1494fb820152f3e2f11a3-ea82d49b4c7f5344-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-content-length": "1024", + "x-ms-blob-type": "PageBlob", + "x-ms-client-request-id": "91dfebbe-9f09-f1b1-4243-d2e8d1a79f1c", + "x-ms-date": "Fri, 18 Dec 2020 21:22:05 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:22:04 GMT", + "ETag": "\u00220x8D8A39AF7DFF62F\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:22:05 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "91dfebbe-9f09-f1b1-4243-d2e8d1a79f1c", + "x-ms-request-id": "74e92573-501e-0054-7983-d5be79000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-42a815a0-4bb8-6331-2ba2-b22901918183/test-blob-cbc84734-1bd7-6302-cf68-9dc91d1d8b58?sv=2020-04-08\u0026st=2020-12-18T20:22:05Z\u0026se=2020-12-18T22:22:05Z\u0026sr=c\u0026sp=racwdxlt\u0026sig=Sanitized", + "RequestMethod": "HEAD", + "RequestHeaders": { + "traceparent": "00-dde4d9f1f259094f9b1a02cd2f833a3a-7cfd3bd7a5761744-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "320b0077-fa3e-974e-782c-7aa60c4975b6", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "1024", + "Content-Type": "application/octet-stream", + "Date": "Fri, 18 Dec 2020 21:22:04 GMT", + "ETag": "\u00220x8D8A39AF7DFF62F\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:22:05 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Vary": "Origin", + "x-ms-blob-sequence-number": "0", + "x-ms-blob-type": "PageBlob", + "x-ms-client-request-id": "320b0077-fa3e-974e-782c-7aa60c4975b6", + "x-ms-creation-time": "Fri, 18 Dec 2020 21:22:05 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "deb59fc1-501e-0076-0383-d5d04f000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-42a815a0-4bb8-6331-2ba2-b22901918183?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-9a80fc56d9694540918800d979f6329c-3a41d37432c88b48-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "d1714aa9-6c9c-1bde-ca30-adbdf9b049ca", + "x-ms-date": "Fri, 18 Dec 2020 21:22:05 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:22:04 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "d1714aa9-6c9c-1bde-ca30-adbdf9b049ca", + "x-ms-request-id": "74e925c8-501e-0054-4b83-d5be79000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T13:22:05.0589240-08:00", + "RandomSeed": "1888745281", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttp://kasoboltest.blob.core.windows.net\nhttp://kasoboltest.file.core.windows.net\nhttp://kasoboltest.queue.core.windows.net\nhttp://kasoboltest.table.core.windows.net\n\n\n\n\nhttp://kasoboltest-secondary.blob.core.windows.net\nhttp://kasoboltest-secondary.file.core.windows.net\nhttp://kasoboltest-secondary.queue.core.windows.net\nhttp://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=http://kasoboltest.blob.core.windows.net/;QueueEndpoint=http://kasoboltest.queue.core.windows.net/;FileEndpoint=http://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=http://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=http://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=http://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/Ctor_AzureSasCredentialAsync.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/Ctor_AzureSasCredentialAsync.json new file mode 100644 index 000000000000..3ea61531df39 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/Ctor_AzureSasCredentialAsync.json @@ -0,0 +1,147 @@ +{ + "Entries": [ + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-8ddde073-335d-c0bf-a39e-20f79414b0f1?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-91b5b2a01c2ef44788e226789309cc1e-850048a82ec1db4c-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "72ba7f75-3af4-0db5-f399-17230e80ddc0", + "x-ms-date": "Fri, 18 Dec 2020 21:22:05 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:22:04 GMT", + "ETag": "\u00220x8D8A39AF80CD931\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:22:05 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "72ba7f75-3af4-0db5-f399-17230e80ddc0", + "x-ms-request-id": "ffb927a6-201e-0072-1e83-d525cd000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-8ddde073-335d-c0bf-a39e-20f79414b0f1/test-blob-a81dfb43-f09c-8b30-11a2-4b870d9bebf2", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "Content-Length": "0", + "traceparent": "00-2846d24469bbec40aa5bbb58effc77c0-07d8bca7c5f65e4d-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-content-length": "1024", + "x-ms-blob-type": "PageBlob", + "x-ms-client-request-id": "dae064f8-7b93-8435-4e2e-6152ee2dff57", + "x-ms-date": "Fri, 18 Dec 2020 21:22:05 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:22:04 GMT", + "ETag": "\u00220x8D8A39AF81280AB\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:22:05 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "dae064f8-7b93-8435-4e2e-6152ee2dff57", + "x-ms-request-id": "ffb927b6-201e-0072-2a83-d525cd000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-8ddde073-335d-c0bf-a39e-20f79414b0f1/test-blob-a81dfb43-f09c-8b30-11a2-4b870d9bebf2?sv=2020-04-08\u0026st=2020-12-18T20:22:05Z\u0026se=2020-12-18T22:22:05Z\u0026sr=c\u0026sp=racwdxlt\u0026sig=Sanitized", + "RequestMethod": "HEAD", + "RequestHeaders": { + "traceparent": "00-1a8bebef88f67744bc3736439130c57c-ca3975f2f9c1ac48-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "a88f8976-11ba-005f-17fc-c62bdbaa63c6", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "1024", + "Content-Type": "application/octet-stream", + "Date": "Fri, 18 Dec 2020 21:22:04 GMT", + "ETag": "\u00220x8D8A39AF81280AB\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:22:05 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Vary": "Origin", + "x-ms-blob-sequence-number": "0", + "x-ms-blob-type": "PageBlob", + "x-ms-client-request-id": "a88f8976-11ba-005f-17fc-c62bdbaa63c6", + "x-ms-creation-time": "Fri, 18 Dec 2020 21:22:05 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "71f80c27-901e-0049-4583-d56793000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-8ddde073-335d-c0bf-a39e-20f79414b0f1?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-46479e8a0f08304d8baa2e7b501d6bc3-474bbe1087259644-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "64dbfb73-569e-9c9d-c5a7-a901013a2a54", + "x-ms-date": "Fri, 18 Dec 2020 21:22:05 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:22:04 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "64dbfb73-569e-9c9d-c5a7-a901013a2a54", + "x-ms-request-id": "ffb927de-201e-0072-4c83-d525cd000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T13:22:05.5344580-08:00", + "RandomSeed": "767013575", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttp://kasoboltest.blob.core.windows.net\nhttp://kasoboltest.file.core.windows.net\nhttp://kasoboltest.queue.core.windows.net\nhttp://kasoboltest.table.core.windows.net\n\n\n\n\nhttp://kasoboltest-secondary.blob.core.windows.net\nhttp://kasoboltest-secondary.file.core.windows.net\nhttp://kasoboltest-secondary.queue.core.windows.net\nhttp://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=http://kasoboltest.blob.core.windows.net/;QueueEndpoint=http://kasoboltest.queue.core.windows.net/;FileEndpoint=http://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=http://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=http://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=http://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json new file mode 100644 index 000000000000..821951eacbdd --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json @@ -0,0 +1,72 @@ +{ + "Entries": [ + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-b60f4113-d991-ebf9-6cc0-4f6e328db9d9?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-a3836c8171b4ff4f8c447a1e1bec3935-1f661f673d897742-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "0cc9c1d9-7cb0-30db-5de9-c7f659a11238", + "x-ms-date": "Fri, 18 Dec 2020 21:22:26 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:22:25 GMT", + "ETag": "\u00220x8D8A39B049E2F6A\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:22:26 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "0cc9c1d9-7cb0-30db-5de9-c7f659a11238", + "x-ms-request-id": "68ef1bdb-301e-0000-6783-d554f3000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-b60f4113-d991-ebf9-6cc0-4f6e328db9d9?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-f90849eadabf1540b5c53dad5dd5d274-b0a012c9d4041449-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "7094bbf6-adc3-2929-3fbc-0bc31615e8d2", + "x-ms-date": "Fri, 18 Dec 2020 21:22:26 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:22:26 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "7094bbf6-adc3-2929-3fbc-0bc31615e8d2", + "x-ms-request-id": "68ef1c5a-301e-0000-5c83-d554f3000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T13:22:26.6762743-08:00", + "RandomSeed": "1891771315", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttp://kasoboltest.blob.core.windows.net\nhttp://kasoboltest.file.core.windows.net\nhttp://kasoboltest.queue.core.windows.net\nhttp://kasoboltest.table.core.windows.net\n\n\n\n\nhttp://kasoboltest-secondary.blob.core.windows.net\nhttp://kasoboltest-secondary.file.core.windows.net\nhttp://kasoboltest-secondary.queue.core.windows.net\nhttp://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=http://kasoboltest.blob.core.windows.net/;QueueEndpoint=http://kasoboltest.queue.core.windows.net/;FileEndpoint=http://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=http://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=http://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=http://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json new file mode 100644 index 000000000000..092747a15d44 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/PageBlobClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json @@ -0,0 +1,72 @@ +{ + "Entries": [ + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-65eeaffd-5156-c6c9-3dd4-ab78bdd69a96?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-2eefc013b15a724882f3a5d401634fdf-a89d77be464a4b41-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "37366c4e-1b2d-2f2f-a7ff-7d0ae7762cf8", + "x-ms-date": "Fri, 18 Dec 2020 21:22:26 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:22:26 GMT", + "ETag": "\u00220x8D8A39B04D86489\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:22:26 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "37366c4e-1b2d-2f2f-a7ff-7d0ae7762cf8", + "x-ms-request-id": "d08a4361-501e-0010-3e83-d56215000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "http://kasoboltest.blob.core.windows.net/test-container-65eeaffd-5156-c6c9-3dd4-ab78bdd69a96?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-27d41e6925f61149bfafefe0c3bfe7b7-cee84d6fbb5d4647-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "5029caac-639f-2a68-9ed5-804ae78f1af7", + "x-ms-date": "Fri, 18 Dec 2020 21:22:27 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:22:26 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "5029caac-639f-2a68-9ed5-804ae78f1af7", + "x-ms-request-id": "d08a4394-501e-0010-6c83-d56215000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T13:22:27.0002725-08:00", + "RandomSeed": "306271043", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttp://kasoboltest.blob.core.windows.net\nhttp://kasoboltest.file.core.windows.net\nhttp://kasoboltest.queue.core.windows.net\nhttp://kasoboltest.table.core.windows.net\n\n\n\n\nhttp://kasoboltest-secondary.blob.core.windows.net\nhttp://kasoboltest-secondary.file.core.windows.net\nhttp://kasoboltest-secondary.queue.core.windows.net\nhttp://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=http://kasoboltest.blob.core.windows.net/;QueueEndpoint=http://kasoboltest.queue.core.windows.net/;FileEndpoint=http://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=http://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=http://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=http://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential.json new file mode 100644 index 000000000000..357fac1af07d --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential.json @@ -0,0 +1,102 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasoboltest.blob.core.windows.net/test-container-1e92a6e4-22b1-406a-03c4-6ed06450727b?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-eb09237cf8c44e49a906a169d3f85f02-19538c302c5a5d43-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "1264ed91-64b6-a7e2-cebb-9bb670d90b6a", + "x-ms-date": "Fri, 18 Dec 2020 21:40:44 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:40:44 GMT", + "ETag": "\u00220x8D8A39D938354FA\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:40:45 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "1264ed91-64b6-a7e2-cebb-9bb670d90b6a", + "x-ms-request-id": "1c7ab277-001e-0008-4586-d54f80000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.blob.core.windows.net/?restype=service\u0026comp=properties\u0026sv=2020-04-08\u0026ss=bfqt\u0026srt=sco\u0026spr=https\u0026se=2020-12-18T22:40:45Z\u0026sp=rwdxlacuptf\u0026sig=Sanitized", + "RequestMethod": "GET", + "RequestHeaders": { + "traceparent": "00-4cb1dd0c7d4f4f4997fc372804ffb0bf-cb3a7aca73d62b40-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "763fe34f-60ec-ffc5-d036-918d475f2307", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Access-Control-Allow-Origin": "*", + "Content-Type": "application/xml", + "Date": "Fri, 18 Dec 2020 21:40:44 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Transfer-Encoding": "chunked", + "x-ms-client-request-id": "763fe34f-60ec-ffc5-d036-918d475f2307", + "x-ms-request-id": "7aeaffb5-401e-002d-6786-d5d733000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": "\uFEFF\u003C?xml version=\u00221.0\u0022 encoding=\u0022utf-8\u0022?\u003E\u003CStorageServiceProperties\u003E\u003CLogging\u003E\u003CVersion\u003E1.0\u003C/Version\u003E\u003CRead\u003Efalse\u003C/Read\u003E\u003CWrite\u003Efalse\u003C/Write\u003E\u003CDelete\u003Efalse\u003C/Delete\u003E\u003CRetentionPolicy\u003E\u003CEnabled\u003Efalse\u003C/Enabled\u003E\u003C/RetentionPolicy\u003E\u003C/Logging\u003E\u003CHourMetrics\u003E\u003CVersion\u003E1.0\u003C/Version\u003E\u003CEnabled\u003Efalse\u003C/Enabled\u003E\u003CRetentionPolicy\u003E\u003CEnabled\u003Efalse\u003C/Enabled\u003E\u003C/RetentionPolicy\u003E\u003C/HourMetrics\u003E\u003CMinuteMetrics\u003E\u003CVersion\u003E1.0\u003C/Version\u003E\u003CEnabled\u003Efalse\u003C/Enabled\u003E\u003CRetentionPolicy\u003E\u003CEnabled\u003Efalse\u003C/Enabled\u003E\u003C/RetentionPolicy\u003E\u003C/MinuteMetrics\u003E\u003CCors\u003E\u003CCorsRule\u003E\u003CAllowedMethods\u003EGET\u003C/AllowedMethods\u003E\u003CAllowedOrigins\u003E*\u003C/AllowedOrigins\u003E\u003CAllowedHeaders\u003Ex-ms-meta-xyz,x-ms-meta-data*\u003C/AllowedHeaders\u003E\u003CExposedHeaders\u003Ex-ms-meta-source*\u003C/ExposedHeaders\u003E\u003CMaxAgeInSeconds\u003E0\u003C/MaxAgeInSeconds\u003E\u003C/CorsRule\u003E\u003C/Cors\u003E\u003CDeleteRetentionPolicy\u003E\u003CEnabled\u003Efalse\u003C/Enabled\u003E\u003CAllowPermanentDelete\u003Efalse\u003C/AllowPermanentDelete\u003E\u003C/DeleteRetentionPolicy\u003E\u003CStaticWebsite\u003E\u003CEnabled\u003Efalse\u003C/Enabled\u003E\u003C/StaticWebsite\u003E\u003CDefaultServiceVersion\u003E2019-02-02\u003C/DefaultServiceVersion\u003E\u003C/StorageServiceProperties\u003E" + }, + { + "RequestUri": "https://kasoboltest.blob.core.windows.net/test-container-1e92a6e4-22b1-406a-03c4-6ed06450727b?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-8d1db5a89e8e8f4a90fba6345085bdf5-fdbaaf16f9e2294b-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "8d67f551-949a-e47d-5a84-f9b5396fb930", + "x-ms-date": "Fri, 18 Dec 2020 21:40:45 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:40:44 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "8d67f551-949a-e47d-5a84-f9b5396fb930", + "x-ms-request-id": "1c7ab341-001e-0008-7a86-d54f80000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T13:40:45.4205208-08:00", + "RandomSeed": "1260380577", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredentialAsync.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredentialAsync.json new file mode 100644 index 000000000000..56df0387a1d0 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredentialAsync.json @@ -0,0 +1,102 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasoboltest.blob.core.windows.net/test-container-0270dabd-f01e-bc89-92ce-576dbf850e7d?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-72f632cae73c9648b30a6a5f661510f8-7635ead8948de144-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "394ebb3d-24d2-212a-9abb-840f636a4970", + "x-ms-date": "Fri, 18 Dec 2020 21:40:45 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:40:45 GMT", + "ETag": "\u00220x8D8A39D93CDF0E8\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:40:45 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "394ebb3d-24d2-212a-9abb-840f636a4970", + "x-ms-request-id": "80895dd1-e01e-002b-5c86-d5204b000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.blob.core.windows.net/?restype=service\u0026comp=properties\u0026sv=2020-04-08\u0026ss=bfqt\u0026srt=sco\u0026spr=https\u0026se=2020-12-18T22:40:45Z\u0026sp=rwdxlacuptf\u0026sig=Sanitized", + "RequestMethod": "GET", + "RequestHeaders": { + "traceparent": "00-79d815dbd2cd0f4e8045409e0f7255b3-fd2a0b309ad6274e-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "032fc277-d437-92aa-97d4-db85c051df2b", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Access-Control-Allow-Origin": "*", + "Content-Type": "application/xml", + "Date": "Fri, 18 Dec 2020 21:40:45 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Transfer-Encoding": "chunked", + "x-ms-client-request-id": "032fc277-d437-92aa-97d4-db85c051df2b", + "x-ms-request-id": "ebcc4ae3-301e-0029-1f86-d522b1000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": "\uFEFF\u003C?xml version=\u00221.0\u0022 encoding=\u0022utf-8\u0022?\u003E\u003CStorageServiceProperties\u003E\u003CLogging\u003E\u003CVersion\u003E1.0\u003C/Version\u003E\u003CRead\u003Efalse\u003C/Read\u003E\u003CWrite\u003Efalse\u003C/Write\u003E\u003CDelete\u003Efalse\u003C/Delete\u003E\u003CRetentionPolicy\u003E\u003CEnabled\u003Efalse\u003C/Enabled\u003E\u003C/RetentionPolicy\u003E\u003C/Logging\u003E\u003CHourMetrics\u003E\u003CVersion\u003E1.0\u003C/Version\u003E\u003CEnabled\u003Efalse\u003C/Enabled\u003E\u003CRetentionPolicy\u003E\u003CEnabled\u003Efalse\u003C/Enabled\u003E\u003C/RetentionPolicy\u003E\u003C/HourMetrics\u003E\u003CMinuteMetrics\u003E\u003CVersion\u003E1.0\u003C/Version\u003E\u003CEnabled\u003Efalse\u003C/Enabled\u003E\u003CRetentionPolicy\u003E\u003CEnabled\u003Efalse\u003C/Enabled\u003E\u003C/RetentionPolicy\u003E\u003C/MinuteMetrics\u003E\u003CCors\u003E\u003CCorsRule\u003E\u003CAllowedMethods\u003EGET\u003C/AllowedMethods\u003E\u003CAllowedOrigins\u003E*\u003C/AllowedOrigins\u003E\u003CAllowedHeaders\u003Ex-ms-meta-xyz,x-ms-meta-data*\u003C/AllowedHeaders\u003E\u003CExposedHeaders\u003Ex-ms-meta-source*\u003C/ExposedHeaders\u003E\u003CMaxAgeInSeconds\u003E0\u003C/MaxAgeInSeconds\u003E\u003C/CorsRule\u003E\u003C/Cors\u003E\u003CDeleteRetentionPolicy\u003E\u003CEnabled\u003Efalse\u003C/Enabled\u003E\u003CAllowPermanentDelete\u003Efalse\u003C/AllowPermanentDelete\u003E\u003C/DeleteRetentionPolicy\u003E\u003CStaticWebsite\u003E\u003CEnabled\u003Efalse\u003C/Enabled\u003E\u003C/StaticWebsite\u003E\u003CDefaultServiceVersion\u003E2019-02-02\u003C/DefaultServiceVersion\u003E\u003C/StorageServiceProperties\u003E" + }, + { + "RequestUri": "https://kasoboltest.blob.core.windows.net/test-container-0270dabd-f01e-bc89-92ce-576dbf850e7d?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-54b5bc70edac6f4fbea51cf5adfbe031-2093eaeaa9325f46-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "a1976299-453a-b138-639f-dc26fc37b627", + "x-ms-date": "Fri, 18 Dec 2020 21:40:45 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:40:45 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "a1976299-453a-b138-639f-dc26fc37b627", + "x-ms-request-id": "80895e32-e01e-002b-2b86-d5204b000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T13:40:45.8505196-08:00", + "RandomSeed": "1096448553", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json new file mode 100644 index 000000000000..c6f7900a570f --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json @@ -0,0 +1,72 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasoboltest.blob.core.windows.net/test-container-7891c908-02c6-2027-d04d-c1714ce3ecfa?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-cc964d2d12f4fc46b0d13f85556a4cfe-7ff99cfc13581349-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "28a5f832-4e81-48e6-b24b-13ba229e08dc", + "x-ms-date": "Fri, 18 Dec 2020 21:41:13 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:41:13 GMT", + "ETag": "\u00220x8D8A39DA493DC43\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:41:13 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "28a5f832-4e81-48e6-b24b-13ba229e08dc", + "x-ms-request-id": "f5fdc334-301e-004f-3986-d590eb000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.blob.core.windows.net/test-container-7891c908-02c6-2027-d04d-c1714ce3ecfa?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-2590371c3fae2e41bb5442a7c580897d-504616c1aff77f48-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "533e278f-c43e-7678-a780-008d6583519c", + "x-ms-date": "Fri, 18 Dec 2020 21:41:14 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:41:13 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "533e278f-c43e-7678-a780-008d6583519c", + "x-ms-request-id": "f5fdc36e-301e-004f-6086-d590eb000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T13:41:14.0528600-08:00", + "RandomSeed": "1214442532", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json new file mode 100644 index 000000000000..df675a867b70 --- /dev/null +++ b/sdk/storage/Azure.Storage.Blobs/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json @@ -0,0 +1,72 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasoboltest.blob.core.windows.net/test-container-7d4c78a4-e1c6-56e7-9cbd-a2467ce6cda7?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-1b2bbc92ee394848a3c5c6df750e146d-5c70f9985ffdd249-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "70e9cee1-af70-b27c-e941-7b01d553bf6f", + "x-ms-date": "Fri, 18 Dec 2020 21:41:14 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:41:13 GMT", + "ETag": "\u00220x8D8A39DA4C26BD4\u0022", + "Last-Modified": "Fri, 18 Dec 2020 21:41:14 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "70e9cee1-af70-b27c-e941-7b01d553bf6f", + "x-ms-request-id": "242b9ec4-e01e-004d-5186-d59211000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.blob.core.windows.net/test-container-7d4c78a4-e1c6-56e7-9cbd-a2467ce6cda7?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-3a66c5afc0f7454ca1bff3f6e26ed3d7-df8c4a4684f95649-00", + "User-Agent": [ + "azsdk-net-Storage.Blobs/12.8.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "ae650b25-5dfd-d037-fcc5-1b6f1bf54324", + "x-ms-date": "Fri, 18 Dec 2020 21:41:14 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 21:41:13 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "ae650b25-5dfd-d037-fcc5-1b6f1bf54324", + "x-ms-request-id": "242b9ed9-e01e-004d-6386-d59211000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T13:41:14.2948611-08:00", + "RandomSeed": "167585905", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Common/src/Shared/Errors.Clients.cs b/sdk/storage/Azure.Storage.Common/src/Shared/Errors.Clients.cs index ab39ef16554e..6f1f35b5b88d 100644 --- a/sdk/storage/Azure.Storage.Common/src/Shared/Errors.Clients.cs +++ b/sdk/storage/Azure.Storage.Common/src/Shared/Errors.Clients.cs @@ -47,6 +47,12 @@ public static InvalidOperationException StreamMustBeAtPosition0() public static InvalidOperationException TokenCredentialsRequireHttps() => new InvalidOperationException("Use of token credentials requires HTTPS"); + public static ArgumentException SasCredentialRequiresUriWithoutSas(Uri uri) + => new ArgumentException( + $"You cannot use {nameof(AzureSasCredential)} when the resource URI also contains a Shared Access Signature: {uri}\n" + + $"You can remove the shared access signature by creating a {typeof(TUriBuilder).Name}, setting {typeof(TUriBuilder).Name}.Sas to null," + + $" and calling {typeof(TUriBuilder).Name}.ToUri."); + public static InvalidOperationException SasMissingData(string paramName) => new InvalidOperationException($"SAS is missing required parameter: {paramName}"); diff --git a/sdk/storage/Azure.Storage.Common/src/Shared/StorageClientOptions.cs b/sdk/storage/Azure.Storage.Common/src/Shared/StorageClientOptions.cs index ad67f1bc5d3d..f27c60178cb7 100644 --- a/sdk/storage/Azure.Storage.Common/src/Shared/StorageClientOptions.cs +++ b/sdk/storage/Azure.Storage.Common/src/Shared/StorageClientOptions.cs @@ -3,7 +3,6 @@ using System; using System.Collections.Generic; -using System.Net.Http; using Azure.Core; using Azure.Core.Pipeline; @@ -42,6 +41,24 @@ public static HttpPipelinePolicy AsPolicy(this StorageSharedKeyCredential creden new StorageSharedKeyPipelinePolicy( credential ?? throw Errors.ArgumentNull(nameof(credential))); + /// + /// Get an authentication policy to sign Storage requests. + /// + /// Credential to use. + /// Resource Uri. Must not contain shared access signature. + /// An authentication policy. + public static HttpPipelinePolicy AsPolicy(this AzureSasCredential credential, Uri resourceUri) + { + Argument.AssertNotNull(resourceUri, nameof(resourceUri)); + Argument.AssertNotNull(credential, nameof(credential)); + var queryParameters = resourceUri.GetQueryParameters(); + if (queryParameters.ContainsKey("sig")) + { + throw Errors.SasCredentialRequiresUriWithoutSas(resourceUri); + } + return new AzureSasCredentialSynchronousPolicy(credential); + } + /// /// Get an authentication policy to sign Storage requests. /// diff --git a/sdk/storage/Azure.Storage.Common/tests/Shared/TestHelper.cs b/sdk/storage/Azure.Storage.Common/tests/Shared/TestHelper.cs index 4c65ac221253..fb46f81b5bf3 100644 --- a/sdk/storage/Azure.Storage.Common/tests/Shared/TestHelper.cs +++ b/sdk/storage/Azure.Storage.Common/tests/Shared/TestHelper.cs @@ -59,9 +59,26 @@ public static void AssertExpectedException(Action action, T expectedException where T : Exception => AssertExpectedException(action, expectedException, GetDefaultExceptionAssertion(predicate)); - public static void AssertExpectedException(Action action, Func predicate = null) + public static void AssertExpectedException(Action action, Func predicate) where T : Exception - => AssertExpectedException(action, default, GetDefaultExceptionAssertion((_, a) => predicate(a))); + { + Assert.IsNotNull(action); + Assert.IsNotNull(predicate); + + try + { + action(); + + Assert.Fail("Expected exception not found"); + } + catch (T actualException) + { + if (!predicate(actualException)) + { + Assert.Fail($"Unexpected exception: {actualException.Message}"); + } + } + } public static void AssertExpectedException(Action action, T expectedException, Action assertion) where T : Exception diff --git a/sdk/storage/Azure.Storage.Files.DataLake/CHANGELOG.md b/sdk/storage/Azure.Storage.Files.DataLake/CHANGELOG.md index f1373bfc5a10..a760840933c4 100644 --- a/sdk/storage/Azure.Storage.Files.DataLake/CHANGELOG.md +++ b/sdk/storage/Azure.Storage.Files.DataLake/CHANGELOG.md @@ -5,6 +5,7 @@ - Added constructors taking connection string to DataLakeServiceClient, DataLakeFileSystemClient, DataLakeDirectoryClient, and DataLakeFileClient. - Fixed bug where DataLakePathClient.SetPermissions(), DataLakeFileClient.SetPermissions(), and DataLakeDirectoryClient.SetPermissions() could not just set Owner or Group. - Fixed bug where DataLakeDirectoryClient initialized with a Uri would throw a null exception when GetPaths() was called. +- Added support for AzureSasCredential. That allows SAS rotation for long living clients. ## 12.6.0-beta.1 (2020-12-07) - Added support for service version 2020-04-08. diff --git a/sdk/storage/Azure.Storage.Files.DataLake/api/Azure.Storage.Files.DataLake.netstandard2.0.cs b/sdk/storage/Azure.Storage.Files.DataLake/api/Azure.Storage.Files.DataLake.netstandard2.0.cs index 47529821ff4d..4d3b7939aafe 100644 --- a/sdk/storage/Azure.Storage.Files.DataLake/api/Azure.Storage.Files.DataLake.netstandard2.0.cs +++ b/sdk/storage/Azure.Storage.Files.DataLake/api/Azure.Storage.Files.DataLake.netstandard2.0.cs @@ -20,6 +20,8 @@ protected DataLakeDirectoryClient() { } public DataLakeDirectoryClient(string connectionString, string fileSystemName, string directoryPath) { } public DataLakeDirectoryClient(string connectionString, string fileSystemName, string directoryPath, Azure.Storage.Files.DataLake.DataLakeClientOptions options) { } public DataLakeDirectoryClient(System.Uri directoryUri) { } + public DataLakeDirectoryClient(System.Uri directoryUri, Azure.AzureSasCredential credential) { } + public DataLakeDirectoryClient(System.Uri directoryUri, Azure.AzureSasCredential credential, Azure.Storage.Files.DataLake.DataLakeClientOptions options) { } public DataLakeDirectoryClient(System.Uri directoryUri, Azure.Core.TokenCredential credential) { } public DataLakeDirectoryClient(System.Uri directoryUri, Azure.Core.TokenCredential credential, Azure.Storage.Files.DataLake.DataLakeClientOptions options) { } public DataLakeDirectoryClient(System.Uri directoryUri, Azure.Storage.Files.DataLake.DataLakeClientOptions options) { } @@ -68,6 +70,8 @@ protected DataLakeFileClient() { } public DataLakeFileClient(string connectionString, string fileSystemName, string filePath) { } public DataLakeFileClient(string connectionString, string fileSystemName, string filePath, Azure.Storage.Files.DataLake.DataLakeClientOptions options) { } public DataLakeFileClient(System.Uri fileUri) { } + public DataLakeFileClient(System.Uri fileUri, Azure.AzureSasCredential credential) { } + public DataLakeFileClient(System.Uri fileUri, Azure.AzureSasCredential credential, Azure.Storage.Files.DataLake.DataLakeClientOptions options) { } public DataLakeFileClient(System.Uri fileUri, Azure.Core.TokenCredential credential) { } public DataLakeFileClient(System.Uri fileUri, Azure.Core.TokenCredential credential, Azure.Storage.Files.DataLake.DataLakeClientOptions options) { } public DataLakeFileClient(System.Uri fileUri, Azure.Storage.Files.DataLake.DataLakeClientOptions options) { } @@ -155,6 +159,8 @@ protected DataLakeFileSystemClient() { } public DataLakeFileSystemClient(string connectionString, string fileSystemName) { } public DataLakeFileSystemClient(string connectionString, string fileSystemName, Azure.Storage.Files.DataLake.DataLakeClientOptions options) { } public DataLakeFileSystemClient(System.Uri fileSystemUri) { } + public DataLakeFileSystemClient(System.Uri fileSystemUri, Azure.AzureSasCredential credential) { } + public DataLakeFileSystemClient(System.Uri fileSystemUri, Azure.AzureSasCredential credential, Azure.Storage.Files.DataLake.DataLakeClientOptions options) { } public DataLakeFileSystemClient(System.Uri fileSystemUri, Azure.Core.TokenCredential credential) { } public DataLakeFileSystemClient(System.Uri fileSystemUri, Azure.Core.TokenCredential credential, Azure.Storage.Files.DataLake.DataLakeClientOptions options) { } public DataLakeFileSystemClient(System.Uri fileSystemUri, Azure.Storage.Files.DataLake.DataLakeClientOptions options) { } @@ -228,6 +234,8 @@ public DataLakePathClient(Azure.Storage.Files.DataLake.DataLakeFileSystemClient public DataLakePathClient(string connectionString, string fileSystemName, string path) { } public DataLakePathClient(string connectionString, string fileSystemName, string path, Azure.Storage.Files.DataLake.DataLakeClientOptions options) { } public DataLakePathClient(System.Uri pathUri) { } + public DataLakePathClient(System.Uri pathUri, Azure.AzureSasCredential credential) { } + public DataLakePathClient(System.Uri pathUri, Azure.AzureSasCredential credential, Azure.Storage.Files.DataLake.DataLakeClientOptions options) { } public DataLakePathClient(System.Uri pathUri, Azure.Core.TokenCredential credential) { } public DataLakePathClient(System.Uri pathUri, Azure.Core.TokenCredential credential, Azure.Storage.Files.DataLake.DataLakeClientOptions options) { } public DataLakePathClient(System.Uri pathUri, Azure.Storage.Files.DataLake.DataLakeClientOptions options) { } @@ -278,6 +286,8 @@ protected DataLakeServiceClient() { } public DataLakeServiceClient(string connectionString) { } public DataLakeServiceClient(string connectionString, Azure.Storage.Files.DataLake.DataLakeClientOptions options) { } public DataLakeServiceClient(System.Uri serviceUri) { } + public DataLakeServiceClient(System.Uri serviceUri, Azure.AzureSasCredential credential) { } + public DataLakeServiceClient(System.Uri serviceUri, Azure.AzureSasCredential credential, Azure.Storage.Files.DataLake.DataLakeClientOptions options) { } public DataLakeServiceClient(System.Uri serviceUri, Azure.Core.TokenCredential credential) { } public DataLakeServiceClient(System.Uri serviceUri, Azure.Core.TokenCredential credential, Azure.Storage.Files.DataLake.DataLakeClientOptions options) { } public DataLakeServiceClient(System.Uri serviceUri, Azure.Storage.Files.DataLake.DataLakeClientOptions options) { } diff --git a/sdk/storage/Azure.Storage.Files.DataLake/src/Azure.Storage.Files.DataLake.csproj b/sdk/storage/Azure.Storage.Files.DataLake/src/Azure.Storage.Files.DataLake.csproj index f111cdaca769..b1eb11c3e364 100644 --- a/sdk/storage/Azure.Storage.Files.DataLake/src/Azure.Storage.Files.DataLake.csproj +++ b/sdk/storage/Azure.Storage.Files.DataLake/src/Azure.Storage.Files.DataLake.csproj @@ -27,6 +27,7 @@ + diff --git a/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeDirectoryClient.cs b/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeDirectoryClient.cs index 05c516a1b444..0ae4f17be252 100644 --- a/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeDirectoryClient.cs +++ b/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeDirectoryClient.cs @@ -158,6 +158,53 @@ public DataLakeDirectoryClient(Uri directoryUri, StorageSharedKeyCredential cred { } + /// + /// Initializes a new instance of the + /// class. + /// + /// + /// A referencing the directory that includes the + /// name of the account, the name of the file system, and the path of the + /// directory. + /// Must not contain shared access signature, which should be passed in the second parameter. + /// + /// + /// The shared access signature credential used to sign requests. + /// + /// + /// This constructor should only be used when shared access signature needs to be updated during lifespan of this client. + /// + public DataLakeDirectoryClient(Uri directoryUri, AzureSasCredential credential) + : this(directoryUri, credential, null) + { + } + + /// + /// Initializes a new instance of the + /// class. + /// + /// + /// A referencing the directory that includes the + /// name of the account, the name of the file system, and the path of the + /// directory. + /// Must not contain shared access signature, which should be passed in the second parameter. + /// + /// + /// The shared access signature credential used to sign requests. + /// + /// + /// Optional client options that define the transport pipeline + /// policies for authentication, retries, etc., that are applied to + /// every request. + /// + /// + /// This constructor should only be used when shared access signature needs to be updated during lifespan of this client. + /// + public DataLakeDirectoryClient(Uri directoryUri, AzureSasCredential credential, DataLakeClientOptions options) + : this(directoryUri, credential.AsPolicy(directoryUri), options, null) + { + } + /// /// Initializes a new instance of the /// class. diff --git a/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeFileClient.cs b/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeFileClient.cs index 732c1512766e..c504f7e7bd20 100644 --- a/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeFileClient.cs +++ b/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeFileClient.cs @@ -179,6 +179,51 @@ public DataLakeFileClient(Uri fileUri, StorageSharedKeyCredential credential, Da { } + /// + /// Initializes a new instance of the class. + /// + /// + /// A referencing the file that includes the + /// name of the account, the name of the file system, and the path of the + /// file. + /// Must not contain shared access signature, which should be passed in the second parameter. + /// + /// + /// The shared access signature credential used to sign requests. + /// + /// + /// This constructor should only be used when shared access signature needs to be updated during lifespan of this client. + /// + public DataLakeFileClient(Uri fileUri, AzureSasCredential credential) + : this(fileUri, credential, null) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// A referencing the file that includes the + /// name of the account, the name of the file system, and the path of the + /// file. + /// Must not contain shared access signature, which should be passed in the second parameter. + /// + /// + /// The shared access signature credential used to sign requests. + /// + /// + /// Optional that define the transport + /// pipeline policies for authentication, retries, etc., that are + /// applied to every request. + /// + /// + /// This constructor should only be used when shared access signature needs to be updated during lifespan of this client. + /// + public DataLakeFileClient(Uri fileUri, AzureSasCredential credential, DataLakeClientOptions options) + : this(fileUri, credential.AsPolicy(fileUri), options, null) + { + } + /// /// Initializes a new instance of the class. /// diff --git a/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeFileSystemClient.cs b/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeFileSystemClient.cs index 3c8ffa2400e9..b15d4a8063cc 100644 --- a/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeFileSystemClient.cs +++ b/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeFileSystemClient.cs @@ -278,6 +278,51 @@ public DataLakeFileSystemClient(Uri fileSystemUri, StorageSharedKeyCredential cr { } + /// + /// Initializes a new instance of the + /// class. + /// + /// + /// A referencing the share that includes the + /// name of the account and the name of the file system. + /// Must not contain shared access signature, which should be passed in the second parameter. + /// + /// + /// The shared access signature credential used to sign requests. + /// + /// + /// This constructor should only be used when shared access signature needs to be updated during lifespan of this client. + /// + public DataLakeFileSystemClient(Uri fileSystemUri, AzureSasCredential credential) + : this(fileSystemUri, credential, null) + { + } + + /// + /// Initializes a new instance of the + /// class. + /// + /// + /// A referencing the share that includes the + /// name of the account and the name of the file system. + /// Must not contain shared access signature, which should be passed in the second parameter. + /// + /// + /// The shared access signature credential used to sign requests. + /// + /// + /// Optional client options that define the transport pipeline + /// policies for authentication, retries, etc., that are applied to + /// every request. + /// + /// + /// This constructor should only be used when shared access signature needs to be updated during lifespan of this client. + /// + public DataLakeFileSystemClient(Uri fileSystemUri, AzureSasCredential credential, DataLakeClientOptions options) + : this(fileSystemUri, credential.AsPolicy(fileSystemUri), options, null) + { + } + /// /// Initializes a new instance of the /// class. @@ -342,6 +387,7 @@ internal DataLakeFileSystemClient( DataLakeClientOptions options, StorageSharedKeyCredential storageSharedKeyCredential) { + Argument.AssertNotNull(fileSystemUri, nameof(fileSystemUri)); DataLakeUriBuilder uriBuilder = new DataLakeUriBuilder(fileSystemUri); options ??= new DataLakeClientOptions(); _uri = fileSystemUri; diff --git a/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakePathClient.cs b/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakePathClient.cs index 1ae980046879..6dbd3b0c051e 100644 --- a/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakePathClient.cs +++ b/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakePathClient.cs @@ -344,6 +344,53 @@ public DataLakePathClient(Uri pathUri, StorageSharedKeyCredential credential, Da { } + /// + /// Initializes a new instance of the + /// class. + /// + /// + /// A referencing the resource that includes the + /// name of the account, the name of the file system, and the path to the + /// resource. + /// Must not contain shared access signature, which should be passed in the second parameter. + /// + /// + /// The shared access signature credential used to sign requests. + /// + /// + /// This constructor should only be used when shared access signature needs to be updated during lifespan of this client. + /// + public DataLakePathClient(Uri pathUri, AzureSasCredential credential) + : this(pathUri, credential, null) + { + } + + /// + /// Initializes a new instance of the + /// class. + /// + /// + /// A referencing the resource that includes the + /// name of the account, the name of the file system, and the path to the + /// resource. + /// Must not contain shared access signature, which should be passed in the second parameter. + /// + /// + /// The shared access signature credential used to sign requests. + /// + /// + /// Optional client options that define the transport pipeline + /// policies for authentication, retries, etc., that are applied to + /// every request. + /// + /// + /// This constructor should only be used when shared access signature needs to be updated during lifespan of this client. + /// + public DataLakePathClient(Uri pathUri, AzureSasCredential credential, DataLakeClientOptions options) + : this(pathUri, credential.AsPolicy(pathUri), options, null) + { + } + /// /// Initializes a new instance of the /// class. @@ -425,6 +472,7 @@ internal DataLakePathClient( DataLakeClientOptions options, StorageSharedKeyCredential storageSharedKeyCredential) { + Argument.AssertNotNull(pathUri, nameof(pathUri)); DataLakeUriBuilder uriBuilder = new DataLakeUriBuilder(pathUri); options ??= new DataLakeClientOptions(); _uri = pathUri; diff --git a/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeServiceClient.cs b/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeServiceClient.cs index f36e38cacb92..e7b58c8d6520 100644 --- a/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeServiceClient.cs +++ b/sdk/storage/Azure.Storage.Files.DataLake/src/DataLakeServiceClient.cs @@ -238,6 +238,49 @@ public DataLakeServiceClient(Uri serviceUri, StorageSharedKeyCredential credenti { } + /// + /// Initializes a new instance of the + /// class. + /// + /// + /// A referencing the Data Lake service. + /// Must not contain shared access signature, which should be passed in the second parameter. + /// + /// + /// The shared access signature credential used to sign requests. + /// + /// + /// This constructor should only be used when shared access signature needs to be updated during lifespan of this client. + /// + public DataLakeServiceClient(Uri serviceUri, AzureSasCredential credential) + : this(serviceUri, credential, null) + { + } + + /// + /// Initializes a new instance of the + /// class. + /// + /// + /// A referencing the Data Lake service. + /// Must not contain shared access signature, which should be passed in the second parameter. + /// + /// + /// The shared access signature credential used to sign requests. + /// + /// + /// Optional client options that define the transport pipeline + /// policies for authentication, retries, etc., that are applied to + /// every request. + /// + /// + /// This constructor should only be used when shared access signature needs to be updated during lifespan of this client. + /// + public DataLakeServiceClient(Uri serviceUri, AzureSasCredential credential, DataLakeClientOptions options) + : this(serviceUri, credential.AsPolicy(serviceUri), options, null, null) + { + } + /// /// Initializes a new instance of the /// class. @@ -328,6 +371,7 @@ internal DataLakeServiceClient( ClientDiagnostics clientDiagnostics, StorageSharedKeyCredential storageSharedKeyCredential) { + Argument.AssertNotNull(serviceUri, nameof(serviceUri)); options ??= new DataLakeClientOptions(); _pipeline = options.Build(authentication); _uri = serviceUri; diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/DirectoryClientTests.cs b/sdk/storage/Azure.Storage.Files.DataLake/tests/DirectoryClientTests.cs index d543996080f3..91bb6386383f 100644 --- a/sdk/storage/Azure.Storage.Files.DataLake/tests/DirectoryClientTests.cs +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/DirectoryClientTests.cs @@ -165,6 +165,39 @@ public void Ctor_TokenCredential_Http() new ArgumentException("Cannot use TokenCredential without HTTPS.")); } + [Test] + public async Task Ctor_AzureSasCredential() + { + // Arrange + string sas = GetNewAccountSasCredentials().ToString(); + await using DisposingFileSystem test = await GetNewFileSystem(); + var client = test.FileSystem.GetDirectoryClient(GetNewDirectoryName()); + await client.CreateIfNotExistsAsync(); + Uri uri = client.Uri; + + // Act + var sasClient = InstrumentClient(new DataLakeDirectoryClient(uri, new AzureSasCredential(sas), GetOptions())); + PathProperties properties = await sasClient.GetPropertiesAsync(); + + // Assert + Assert.IsNotNull(properties); + } + + [Test] + public async Task Ctor_AzureSasCredential_VerifyNoSasInUri() + { + // Arrange + string sas = GetNewAccountSasCredentials().ToString(); + await using DisposingFileSystem test = await GetNewFileSystem(); + Uri uri = test.FileSystem.GetDirectoryClient(GetNewDirectoryName()).Uri; + uri = new Uri(uri.ToString() + "?" + sas); + + // Act + TestHelper.AssertExpectedException( + () => new DataLakeDirectoryClient(uri, new AzureSasCredential(sas)), + e => e.Message.Contains($"You cannot use {nameof(AzureSasCredential)} when the resource URI also contains a Shared Access Signature")); + } + [Test] public async Task CreateAsync() { diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/FileClientTests.cs b/sdk/storage/Azure.Storage.Files.DataLake/tests/FileClientTests.cs index 886902ae47c8..52bd573e9ee1 100644 --- a/sdk/storage/Azure.Storage.Files.DataLake/tests/FileClientTests.cs +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/FileClientTests.cs @@ -168,6 +168,39 @@ public async Task Ctor_ConnectionString_GenerateSas() await sasFileClient.GetAccessControlAsync(); } + [Test] + public async Task Ctor_AzureSasCredential() + { + // Arrange + string sas = GetNewAccountSasCredentials().ToString(); + await using DisposingFileSystem test = await GetNewFileSystem(); + var client = test.FileSystem.GetRootDirectoryClient().GetFileClient(GetNewFileName()); + await client.CreateIfNotExistsAsync(); + Uri uri = client.Uri; + + // Act + var sasClient = InstrumentClient(new DataLakeFileClient(uri, new AzureSasCredential(sas), GetOptions())); + PathProperties properties = await sasClient.GetPropertiesAsync(); + + // Assert + Assert.IsNotNull(properties); + } + + [Test] + public async Task Ctor_AzureSasCredential_VerifyNoSasInUri() + { + // Arrange + string sas = GetNewAccountSasCredentials().ToString(); + await using DisposingFileSystem test = await GetNewFileSystem(); + Uri uri = test.FileSystem.GetRootDirectoryClient().GetFileClient(GetNewFileName()).Uri; + uri = new Uri(uri.ToString() + "?" + sas); + + // Act + TestHelper.AssertExpectedException( + () => new DataLakeFileClient(uri, new AzureSasCredential(sas)), + e => e.Message.Contains($"You cannot use {nameof(AzureSasCredential)} when the resource URI also contains a Shared Access Signature")); + } + [Test] public async Task CreateAsync() { diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/FileSystemClientTests.cs b/sdk/storage/Azure.Storage.Files.DataLake/tests/FileSystemClientTests.cs index 39244126f8b4..d3e349cc92f5 100644 --- a/sdk/storage/Azure.Storage.Files.DataLake/tests/FileSystemClientTests.cs +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/FileSystemClientTests.cs @@ -179,6 +179,37 @@ public void Ctor_TokenCredential_Http() new ArgumentException("Cannot use TokenCredential without HTTPS.")); } + [Test] + public async Task Ctor_AzureSasCredential() + { + // Arrange + string sas = GetNewAccountSasCredentials().ToString(); + await using DisposingFileSystem test = await GetNewFileSystem(); + Uri uri = test.FileSystem.Uri; + + // Act + var sasClient = InstrumentClient(new DataLakeFileSystemClient(uri, new AzureSasCredential(sas), GetOptions())); + FileSystemProperties properties = await sasClient.GetPropertiesAsync(); + + // Assert + Assert.IsNotNull(properties); + } + + [Test] + public async Task Ctor_AzureSasCredential_VerifyNoSasInUri() + { + // Arrange + string sas = GetNewAccountSasCredentials().ToString(); + await using DisposingFileSystem test = await GetNewFileSystem(); + Uri uri = test.FileSystem.Uri; + uri = new Uri(uri.ToString() + "?" + sas); + + // Act + TestHelper.AssertExpectedException( + () => new DataLakeFileSystemClient(uri, new AzureSasCredential(sas)), + e => e.Message.Contains($"You cannot use {nameof(AzureSasCredential)} when the resource URI also contains a Shared Access Signature")); + } + [Test] public async Task GetFileClient() { diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/ServiceClientTests.cs b/sdk/storage/Azure.Storage.Files.DataLake/tests/ServiceClientTests.cs index 37288f29917b..9feed2a0f92e 100644 --- a/sdk/storage/Azure.Storage.Files.DataLake/tests/ServiceClientTests.cs +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/ServiceClientTests.cs @@ -140,6 +140,35 @@ public void Ctor_TokenCredential_Http() new ArgumentException("Cannot use TokenCredential without HTTPS.")); } + [Test] + public async Task Ctor_AzureSasCredential() + { + // Arrange + string sas = GetNewAccountSasCredentials().ToString(); + Uri uri = GetServiceClient_SharedKey().Uri; + + // Act + var sasClient = InstrumentClient(new DataLakeServiceClient(uri, new AzureSasCredential(sas), GetOptions())); + var fileSystems = await sasClient.GetFileSystemsAsync().ToListAsync(); + + // Assert + Assert.IsNotNull(fileSystems); + } + + [Test] + public void Ctor_AzureSasCredential_VerifyNoSasInUri() + { + // Arrange + string sas = GetNewAccountSasCredentials().ToString(); + Uri uri = GetServiceClient_SharedKey().Uri; + uri = new Uri(uri.ToString() + "?" + sas); + + // Act + TestHelper.AssertExpectedException( + () => new DataLakeServiceClient(uri, new AzureSasCredential(sas)), + e => e.Message.Contains($"You cannot use {nameof(AzureSasCredential)} when the resource URI also contains a Shared Access Signature")); + } + [Test] public async Task GetUserDelegationKey() { diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredential.json b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredential.json new file mode 100644 index 000000000000..af8b7678de93 --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredential.json @@ -0,0 +1,145 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-f968bdf9-4b3b-d793-46d9-11e83c61fcb3?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-a72e1d2fa0c4334b84b5d197eff1c5d2-f3d036ce7b758b43-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "fceed3b4-09f2-1c11-c3de-9c4ce7d1aea7", + "x-ms-date": "Fri, 18 Dec 2020 22:12:49 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:12:50 GMT", + "ETag": "\u00220x8D8A3A20F054022\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:12:50 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "fceed3b4-09f2-1c11-c3de-9c4ce7d1aea7", + "x-ms-request-id": "23a0ac22-401e-0038-708a-d5e960000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasobolcanaryhns.dfs.core.windows.net/test-filesystem-f968bdf9-4b3b-d793-46d9-11e83c61fcb3/test-directory-7de29fb3-2c76-4031-84e7-67602a4ad405?resource=directory", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-None-Match": "*", + "traceparent": "00-fa7053ebb16ea446b6e6672d2fe339bb-2a8b1e8cbcb3e04c-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "6296792d-f95e-88e1-a2ae-770ba1b1f278", + "x-ms-date": "Fri, 18 Dec 2020 22:12:50 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:12:51 GMT", + "ETag": "\u00220x8D8A3A20F8F118D\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:12:51 GMT", + "Server": [ + "Windows-Azure-HDFS/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "6296792d-f95e-88e1-a2ae-770ba1b1f278", + "x-ms-request-id": "cbe8f8cc-201f-002e-188a-d51fb7000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-f968bdf9-4b3b-d793-46d9-11e83c61fcb3/test-directory-7de29fb3-2c76-4031-84e7-67602a4ad405?sv=2020-04-08\u0026ss=b\u0026srt=sco\u0026st=2020-12-18T21:12:49Z\u0026se=2020-12-18T23:12:49Z\u0026sp=rwdlac\u0026sig=Sanitized", + "RequestMethod": "HEAD", + "RequestHeaders": { + "traceparent": "00-485c823b4d6f5346a09698ba0b7bf491-dc77f9e31bafff48-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "b132a74d-71b4-68a7-d8ab-c6c488b5ff93", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "0", + "Content-Type": "application/octet-stream", + "Date": "Fri, 18 Dec 2020 22:12:51 GMT", + "ETag": "\u00220x8D8A3A20F8F118D\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:12:51 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-access-tier": "Hot", + "x-ms-access-tier-inferred": "true", + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "b132a74d-71b4-68a7-d8ab-c6c488b5ff93", + "x-ms-creation-time": "Fri, 18 Dec 2020 22:12:51 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-meta-hdi_isfolder": "true", + "x-ms-request-id": "7c7a0b0e-601e-0010-218a-d588c8000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-f968bdf9-4b3b-d793-46d9-11e83c61fcb3?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-8eb7b98fe21cf443b14d9793e6c8d9f7-88999cb8d3ed3841-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "fabdde8a-407f-98c4-ef81-55f27e702a29", + "x-ms-date": "Fri, 18 Dec 2020 22:12:51 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:12:51 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "fabdde8a-407f-98c4-ef81-55f27e702a29", + "x-ms-request-id": "23a0ad73-401e-0038-1c8a-d5e960000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T14:12:49.4888869-08:00", + "RandomSeed": "1099316771", + "Storage_TestConfigHierarchicalNamespace": "NamespaceTenant\nkasobolcanaryhns\nU2FuaXRpemVk\nhttps://kasobolcanaryhns.blob.core.windows.net\nhttps://kasobolcanaryhns.file.core.windows.net\nhttps://kasobolcanaryhns.queue.core.windows.net\nhttps://kasobolcanaryhns.table.core.windows.net\n\n\n\n\nhttps://kasobolcanaryhns-secondary.blob.core.windows.net\nhttps://kasobolcanaryhns-secondary.file.core.windows.net\nhttps://kasobolcanaryhns-secondary.queue.core.windows.net\nhttps://kasobolcanaryhns-secondary.table.core.windows.net\nc6b5fe1a-9b59-4975-92c4-d9f728c3c371\nSanitized\n72f988bf-86f1-41af-91ab-2d7cd011db47\nhttps://login.microsoftonline.com/\nCloud\nBlobEndpoint=https://kasobolcanaryhns.blob.core.windows.net/;QueueEndpoint=https://kasobolcanaryhns.queue.core.windows.net/;FileEndpoint=https://kasobolcanaryhns.file.core.windows.net/;BlobSecondaryEndpoint=https://kasobolcanaryhns-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasobolcanaryhns-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasobolcanaryhns-secondary.file.core.windows.net/;AccountName=kasobolcanaryhns;AccountKey=Sanitized\n" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredentialAsync.json b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredentialAsync.json new file mode 100644 index 000000000000..5880130a893b --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredentialAsync.json @@ -0,0 +1,145 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-4fca212f-3111-2e3d-ab18-8f71a8f8cf07?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-cd2a584de9deb4429aed7f2230ff738b-d48dbd9da113ae4f-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "b3e3ac2c-a1c8-1ec4-4684-0150541bea3a", + "x-ms-date": "Fri, 18 Dec 2020 22:12:52 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:12:51 GMT", + "ETag": "\u00220x8D8A3A2102D0282\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:12:52 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "b3e3ac2c-a1c8-1ec4-4684-0150541bea3a", + "x-ms-request-id": "c361224d-f01e-0060-438a-d5313f000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasobolcanaryhns.dfs.core.windows.net/test-filesystem-4fca212f-3111-2e3d-ab18-8f71a8f8cf07/test-directory-af914045-98d6-d087-32ab-cb3b27992e04?resource=directory", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-None-Match": "*", + "traceparent": "00-825c54f246f6f5408e3400361007ee30-4c67f2655f1d1a4d-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "bf5ecfea-b915-9443-2412-811cd688f6ac", + "x-ms-date": "Fri, 18 Dec 2020 22:12:52 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:12:52 GMT", + "ETag": "\u00220x8D8A3A210695831\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:12:52 GMT", + "Server": [ + "Windows-Azure-HDFS/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "bf5ecfea-b915-9443-2412-811cd688f6ac", + "x-ms-request-id": "a2d50fd4-001f-005b-7d8a-d5749b000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-4fca212f-3111-2e3d-ab18-8f71a8f8cf07/test-directory-af914045-98d6-d087-32ab-cb3b27992e04?sv=2020-04-08\u0026ss=b\u0026srt=sco\u0026st=2020-12-18T21:12:52Z\u0026se=2020-12-18T23:12:52Z\u0026sp=rwdlac\u0026sig=Sanitized", + "RequestMethod": "HEAD", + "RequestHeaders": { + "traceparent": "00-2f1ad1ab02329b48a62dfb3c1abd0af8-b6753c5651413548-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "575162e1-6e3a-f5ee-30b1-d8029a2240af", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "0", + "Content-Type": "application/octet-stream", + "Date": "Fri, 18 Dec 2020 22:12:53 GMT", + "ETag": "\u00220x8D8A3A210695831\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:12:52 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-access-tier": "Hot", + "x-ms-access-tier-inferred": "true", + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "575162e1-6e3a-f5ee-30b1-d8029a2240af", + "x-ms-creation-time": "Fri, 18 Dec 2020 22:12:52 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-meta-hdi_isfolder": "true", + "x-ms-request-id": "94e0ac46-001e-0074-758a-d57950000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-4fca212f-3111-2e3d-ab18-8f71a8f8cf07?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-813266c89489854790193e7de36dbfa6-d25830717ed31a40-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "743aed9d-9e37-e872-0eab-af2515228edf", + "x-ms-date": "Fri, 18 Dec 2020 22:12:53 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:12:52 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "743aed9d-9e37-e872-0eab-af2515228edf", + "x-ms-request-id": "c36123f3-f01e-0060-578a-d5313f000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T14:12:52.1634279-08:00", + "RandomSeed": "90149853", + "Storage_TestConfigHierarchicalNamespace": "NamespaceTenant\nkasobolcanaryhns\nU2FuaXRpemVk\nhttps://kasobolcanaryhns.blob.core.windows.net\nhttps://kasobolcanaryhns.file.core.windows.net\nhttps://kasobolcanaryhns.queue.core.windows.net\nhttps://kasobolcanaryhns.table.core.windows.net\n\n\n\n\nhttps://kasobolcanaryhns-secondary.blob.core.windows.net\nhttps://kasobolcanaryhns-secondary.file.core.windows.net\nhttps://kasobolcanaryhns-secondary.queue.core.windows.net\nhttps://kasobolcanaryhns-secondary.table.core.windows.net\nc6b5fe1a-9b59-4975-92c4-d9f728c3c371\nSanitized\n72f988bf-86f1-41af-91ab-2d7cd011db47\nhttps://login.microsoftonline.com/\nCloud\nBlobEndpoint=https://kasobolcanaryhns.blob.core.windows.net/;QueueEndpoint=https://kasobolcanaryhns.queue.core.windows.net/;FileEndpoint=https://kasobolcanaryhns.file.core.windows.net/;BlobSecondaryEndpoint=https://kasobolcanaryhns-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasobolcanaryhns-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasobolcanaryhns-secondary.file.core.windows.net/;AccountName=kasobolcanaryhns;AccountKey=Sanitized\n" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json new file mode 100644 index 000000000000..fa9996ed2c11 --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json @@ -0,0 +1,72 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-cb188e94-e91b-d7fb-aad4-6844b7185582?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-40987d8a00f5924b84da90ffb0946e22-1c125f01f339ee42-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "33210bf6-984c-1498-1d42-93e8564a2d9b", + "x-ms-date": "Fri, 18 Dec 2020 22:14:06 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:14:05 GMT", + "ETag": "\u00220x8D8A3A23C6C037B\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:14:06 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "33210bf6-984c-1498-1d42-93e8564a2d9b", + "x-ms-request-id": "055272fe-c01e-0019-3b8b-d5cd1b000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-cb188e94-e91b-d7fb-aad4-6844b7185582?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-3b1f0267fbb292489d6e6db7d5ab4ae8-a290ad5c998ded4c-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "6e38965c-8de0-fc4b-9a32-be70b4075c63", + "x-ms-date": "Fri, 18 Dec 2020 22:14:07 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:14:06 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "6e38965c-8de0-fc4b-9a32-be70b4075c63", + "x-ms-request-id": "055273f4-c01e-0019-258b-d5cd1b000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T14:14:05.6486917-08:00", + "RandomSeed": "1488080921", + "Storage_TestConfigHierarchicalNamespace": "NamespaceTenant\nkasobolcanaryhns\nU2FuaXRpemVk\nhttps://kasobolcanaryhns.blob.core.windows.net\nhttps://kasobolcanaryhns.file.core.windows.net\nhttps://kasobolcanaryhns.queue.core.windows.net\nhttps://kasobolcanaryhns.table.core.windows.net\n\n\n\n\nhttps://kasobolcanaryhns-secondary.blob.core.windows.net\nhttps://kasobolcanaryhns-secondary.file.core.windows.net\nhttps://kasobolcanaryhns-secondary.queue.core.windows.net\nhttps://kasobolcanaryhns-secondary.table.core.windows.net\nc6b5fe1a-9b59-4975-92c4-d9f728c3c371\nSanitized\n72f988bf-86f1-41af-91ab-2d7cd011db47\nhttps://login.microsoftonline.com/\nCloud\nBlobEndpoint=https://kasobolcanaryhns.blob.core.windows.net/;QueueEndpoint=https://kasobolcanaryhns.queue.core.windows.net/;FileEndpoint=https://kasobolcanaryhns.file.core.windows.net/;BlobSecondaryEndpoint=https://kasobolcanaryhns-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasobolcanaryhns-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasobolcanaryhns-secondary.file.core.windows.net/;AccountName=kasobolcanaryhns;AccountKey=Sanitized\n" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json new file mode 100644 index 000000000000..ba664a11ae7f --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json @@ -0,0 +1,72 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-80b1242d-455e-6857-b098-60d6e346f9a9?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-8810fc129ff3d24ca97ee4263e450b15-d981adad6e5a434f-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "a5a82421-5ce0-1bfd-316e-8a0f719d5f31", + "x-ms-date": "Fri, 18 Dec 2020 22:14:07 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:14:07 GMT", + "ETag": "\u00220x8D8A3A23D100C3D\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:14:07 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "a5a82421-5ce0-1bfd-316e-8a0f719d5f31", + "x-ms-request-id": "55139bb7-701e-0041-728b-d51544000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-80b1242d-455e-6857-b098-60d6e346f9a9?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-45290b2edd1f4a4e9842f2076ed4c35f-236270e405eb2c46-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "311e3855-aeb2-82a3-0abe-1c9911543f09", + "x-ms-date": "Fri, 18 Dec 2020 22:14:07 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:14:07 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "311e3855-aeb2-82a3-0abe-1c9911543f09", + "x-ms-request-id": "55139c03-701e-0041-2e8b-d51544000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T14:14:07.4556687-08:00", + "RandomSeed": "1593554776", + "Storage_TestConfigHierarchicalNamespace": "NamespaceTenant\nkasobolcanaryhns\nU2FuaXRpemVk\nhttps://kasobolcanaryhns.blob.core.windows.net\nhttps://kasobolcanaryhns.file.core.windows.net\nhttps://kasobolcanaryhns.queue.core.windows.net\nhttps://kasobolcanaryhns.table.core.windows.net\n\n\n\n\nhttps://kasobolcanaryhns-secondary.blob.core.windows.net\nhttps://kasobolcanaryhns-secondary.file.core.windows.net\nhttps://kasobolcanaryhns-secondary.queue.core.windows.net\nhttps://kasobolcanaryhns-secondary.table.core.windows.net\nc6b5fe1a-9b59-4975-92c4-d9f728c3c371\nSanitized\n72f988bf-86f1-41af-91ab-2d7cd011db47\nhttps://login.microsoftonline.com/\nCloud\nBlobEndpoint=https://kasobolcanaryhns.blob.core.windows.net/;QueueEndpoint=https://kasobolcanaryhns.queue.core.windows.net/;FileEndpoint=https://kasobolcanaryhns.file.core.windows.net/;BlobSecondaryEndpoint=https://kasobolcanaryhns-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasobolcanaryhns-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasobolcanaryhns-secondary.file.core.windows.net/;AccountName=kasobolcanaryhns;AccountKey=Sanitized\n" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredential.json b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredential.json new file mode 100644 index 000000000000..7a67d0c9da0f --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredential.json @@ -0,0 +1,144 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-0c753d90-339f-c341-d211-d133c58f9126?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-19187a14e749d247ac5066fb52b1f7ef-67aaf5d0fe82bf46-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "62bf499f-6b03-40a2-dd3e-b61dd09724c9", + "x-ms-date": "Fri, 18 Dec 2020 22:16:33 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:16:33 GMT", + "ETag": "\u00220x8D8A3A29440A55A\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:16:34 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "62bf499f-6b03-40a2-dd3e-b61dd09724c9", + "x-ms-request-id": "5bfe80ea-801e-0018-4a8b-d592c7000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasobolcanaryhns.dfs.core.windows.net/test-filesystem-0c753d90-339f-c341-d211-d133c58f9126/test-file-0a1e640e-a06f-9bda-4365-a90b07a45831?resource=file", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-None-Match": "*", + "traceparent": "00-76234cae37bcf74dad384a82a94f815e-5e37aa60c979584e-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "068f626e-5b82-fe72-6e24-1f9ec1963938", + "x-ms-date": "Fri, 18 Dec 2020 22:16:34 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:16:34 GMT", + "ETag": "\u00220x8D8A3A294BC0A80\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:16:34 GMT", + "Server": [ + "Windows-Azure-HDFS/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "068f626e-5b82-fe72-6e24-1f9ec1963938", + "x-ms-request-id": "7a043bf7-e01f-0088-5d8b-d5a8a9000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-0c753d90-339f-c341-d211-d133c58f9126/test-file-0a1e640e-a06f-9bda-4365-a90b07a45831?sv=2020-04-08\u0026ss=b\u0026srt=sco\u0026st=2020-12-18T21:16:33Z\u0026se=2020-12-18T23:16:33Z\u0026sp=rwdlac\u0026sig=Sanitized", + "RequestMethod": "HEAD", + "RequestHeaders": { + "traceparent": "00-728219e7fd192a4383883766d024cf43-6fcf9bc6066ebe4d-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "a59cdf26-5214-50af-7c94-0dab0f845173", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "0", + "Content-Type": "application/octet-stream", + "Date": "Fri, 18 Dec 2020 22:16:34 GMT", + "ETag": "\u00220x8D8A3A294BC0A80\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:16:34 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-access-tier": "Hot", + "x-ms-access-tier-inferred": "true", + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "a59cdf26-5214-50af-7c94-0dab0f845173", + "x-ms-creation-time": "Fri, 18 Dec 2020 22:16:34 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "6eb2d0ca-701e-008a-6d8b-d51611000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-0c753d90-339f-c341-d211-d133c58f9126?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-1af4b19c05020e40940954ca177ceba6-1c7fecbb57d2004e-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "e277b7c7-93f9-9224-d521-656f9b4dcfbc", + "x-ms-date": "Fri, 18 Dec 2020 22:16:35 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:16:34 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "e277b7c7-93f9-9224-d521-656f9b4dcfbc", + "x-ms-request-id": "5bfe832d-801e-0018-758b-d592c7000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T14:16:33.0552792-08:00", + "RandomSeed": "1036000503", + "Storage_TestConfigHierarchicalNamespace": "NamespaceTenant\nkasobolcanaryhns\nU2FuaXRpemVk\nhttps://kasobolcanaryhns.blob.core.windows.net\nhttps://kasobolcanaryhns.file.core.windows.net\nhttps://kasobolcanaryhns.queue.core.windows.net\nhttps://kasobolcanaryhns.table.core.windows.net\n\n\n\n\nhttps://kasobolcanaryhns-secondary.blob.core.windows.net\nhttps://kasobolcanaryhns-secondary.file.core.windows.net\nhttps://kasobolcanaryhns-secondary.queue.core.windows.net\nhttps://kasobolcanaryhns-secondary.table.core.windows.net\nc6b5fe1a-9b59-4975-92c4-d9f728c3c371\nSanitized\n72f988bf-86f1-41af-91ab-2d7cd011db47\nhttps://login.microsoftonline.com/\nCloud\nBlobEndpoint=https://kasobolcanaryhns.blob.core.windows.net/;QueueEndpoint=https://kasobolcanaryhns.queue.core.windows.net/;FileEndpoint=https://kasobolcanaryhns.file.core.windows.net/;BlobSecondaryEndpoint=https://kasobolcanaryhns-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasobolcanaryhns-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasobolcanaryhns-secondary.file.core.windows.net/;AccountName=kasobolcanaryhns;AccountKey=Sanitized\n" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredentialAsync.json b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredentialAsync.json new file mode 100644 index 000000000000..a665046f8707 --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredentialAsync.json @@ -0,0 +1,144 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-5e24ace2-8a5d-b7bd-a765-b8c9da9d835d?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-e7abdce74cfdb447923ede6977b15a1d-ad6c71ef02d9fd47-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "cae53d67-cd31-1e68-2008-705740537628", + "x-ms-date": "Fri, 18 Dec 2020 22:16:35 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:16:35 GMT", + "ETag": "\u00220x8D8A3A29552419C\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:16:35 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "cae53d67-cd31-1e68-2008-705740537628", + "x-ms-request-id": "7c7a8d2a-601e-0010-7e8b-d588c8000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasobolcanaryhns.dfs.core.windows.net/test-filesystem-5e24ace2-8a5d-b7bd-a765-b8c9da9d835d/test-file-41c32f98-8641-b608-36fc-96af404d6892?resource=file", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "If-None-Match": "*", + "traceparent": "00-91d8c9d41a31e148a52bcec5c22c0ca4-93dc8f336137bf4a-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "1fd72137-e751-e126-352e-943536b9ded3", + "x-ms-date": "Fri, 18 Dec 2020 22:16:35 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:16:36 GMT", + "ETag": "\u00220x8D8A3A295A86308\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:16:36 GMT", + "Server": [ + "Windows-Azure-HDFS/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "1fd72137-e751-e126-352e-943536b9ded3", + "x-ms-request-id": "4a7e4a2c-c01f-006b-028b-d5ca54000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-5e24ace2-8a5d-b7bd-a765-b8c9da9d835d/test-file-41c32f98-8641-b608-36fc-96af404d6892?sv=2020-04-08\u0026ss=b\u0026srt=sco\u0026st=2020-12-18T21:16:35Z\u0026se=2020-12-18T23:16:35Z\u0026sp=rwdlac\u0026sig=Sanitized", + "RequestMethod": "HEAD", + "RequestHeaders": { + "traceparent": "00-8743dd90b3c7bf46a4a29510d1420f82-3945a1c9953a4a49-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "1e782115-4875-5641-2980-688a24f6c13e", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Accept-Ranges": "bytes", + "Content-Length": "0", + "Content-Type": "application/octet-stream", + "Date": "Fri, 18 Dec 2020 22:16:36 GMT", + "ETag": "\u00220x8D8A3A295A86308\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:16:36 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-access-tier": "Hot", + "x-ms-access-tier-inferred": "true", + "x-ms-blob-type": "BlockBlob", + "x-ms-client-request-id": "1e782115-4875-5641-2980-688a24f6c13e", + "x-ms-creation-time": "Fri, 18 Dec 2020 22:16:36 GMT", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "1e977fc2-f01e-0070-5b8b-d5f457000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-5e24ace2-8a5d-b7bd-a765-b8c9da9d835d?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-aff6204d0e3bf44492e1cf9c45c6538f-befe911db126cf4f-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "15207d34-bf41-575d-9bc4-c67171e5bc0b", + "x-ms-date": "Fri, 18 Dec 2020 22:16:36 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:16:36 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "15207d34-bf41-575d-9bc4-c67171e5bc0b", + "x-ms-request-id": "7c7a8e11-601e-0010-438b-d588c8000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T14:16:35.4914086-08:00", + "RandomSeed": "520864701", + "Storage_TestConfigHierarchicalNamespace": "NamespaceTenant\nkasobolcanaryhns\nU2FuaXRpemVk\nhttps://kasobolcanaryhns.blob.core.windows.net\nhttps://kasobolcanaryhns.file.core.windows.net\nhttps://kasobolcanaryhns.queue.core.windows.net\nhttps://kasobolcanaryhns.table.core.windows.net\n\n\n\n\nhttps://kasobolcanaryhns-secondary.blob.core.windows.net\nhttps://kasobolcanaryhns-secondary.file.core.windows.net\nhttps://kasobolcanaryhns-secondary.queue.core.windows.net\nhttps://kasobolcanaryhns-secondary.table.core.windows.net\nc6b5fe1a-9b59-4975-92c4-d9f728c3c371\nSanitized\n72f988bf-86f1-41af-91ab-2d7cd011db47\nhttps://login.microsoftonline.com/\nCloud\nBlobEndpoint=https://kasobolcanaryhns.blob.core.windows.net/;QueueEndpoint=https://kasobolcanaryhns.queue.core.windows.net/;FileEndpoint=https://kasobolcanaryhns.file.core.windows.net/;BlobSecondaryEndpoint=https://kasobolcanaryhns-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasobolcanaryhns-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasobolcanaryhns-secondary.file.core.windows.net/;AccountName=kasobolcanaryhns;AccountKey=Sanitized\n" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json new file mode 100644 index 000000000000..4dcb7e145425 --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json @@ -0,0 +1,72 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-a24cf40e-aad7-5a50-8878-758555d71e10?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-fddfb05b5a05f149a9a410c3357f0d80-878e07110e9d1e4e-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "4b699d35-332c-f30f-6cf1-6c77e1db084b", + "x-ms-date": "Fri, 18 Dec 2020 22:16:52 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:16:53 GMT", + "ETag": "\u00220x8D8A3A29FA5ADF3\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:16:53 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "4b699d35-332c-f30f-6cf1-6c77e1db084b", + "x-ms-request-id": "c46ddef6-101e-0025-0a8b-d5e4dc000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-a24cf40e-aad7-5a50-8878-758555d71e10?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-eb1d3531df818347a3b6f60ff51b942b-4b2a3f140dd0354a-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "97e69b2d-2710-9fac-6c46-b4075e6d2f8a", + "x-ms-date": "Fri, 18 Dec 2020 22:16:53 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:16:53 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "97e69b2d-2710-9fac-6c46-b4075e6d2f8a", + "x-ms-request-id": "c46ddf1b-101e-0025-248b-d5e4dc000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T14:16:52.2742494-08:00", + "RandomSeed": "1741434093", + "Storage_TestConfigHierarchicalNamespace": "NamespaceTenant\nkasobolcanaryhns\nU2FuaXRpemVk\nhttps://kasobolcanaryhns.blob.core.windows.net\nhttps://kasobolcanaryhns.file.core.windows.net\nhttps://kasobolcanaryhns.queue.core.windows.net\nhttps://kasobolcanaryhns.table.core.windows.net\n\n\n\n\nhttps://kasobolcanaryhns-secondary.blob.core.windows.net\nhttps://kasobolcanaryhns-secondary.file.core.windows.net\nhttps://kasobolcanaryhns-secondary.queue.core.windows.net\nhttps://kasobolcanaryhns-secondary.table.core.windows.net\nc6b5fe1a-9b59-4975-92c4-d9f728c3c371\nSanitized\n72f988bf-86f1-41af-91ab-2d7cd011db47\nhttps://login.microsoftonline.com/\nCloud\nBlobEndpoint=https://kasobolcanaryhns.blob.core.windows.net/;QueueEndpoint=https://kasobolcanaryhns.queue.core.windows.net/;FileEndpoint=https://kasobolcanaryhns.file.core.windows.net/;BlobSecondaryEndpoint=https://kasobolcanaryhns-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasobolcanaryhns-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasobolcanaryhns-secondary.file.core.windows.net/;AccountName=kasobolcanaryhns;AccountKey=Sanitized\n" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json new file mode 100644 index 000000000000..1e376f14b54d --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json @@ -0,0 +1,72 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-43c33e7d-c105-02ff-0eac-d7bd88e74c9e?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-d0a9ea47cf97e8428236a7e52aa7fee1-fd7d9d8c5cfd714c-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "e1cf9c2c-78f5-6fce-6828-ad4757968f27", + "x-ms-date": "Fri, 18 Dec 2020 22:16:53 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:16:53 GMT", + "ETag": "\u00220x8D8A3A2A026E77D\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:16:53 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "e1cf9c2c-78f5-6fce-6828-ad4757968f27", + "x-ms-request-id": "79cc2270-a01e-0099-558b-d5321d000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-43c33e7d-c105-02ff-0eac-d7bd88e74c9e?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-6f587714ff10d5428573600ee2d8e2c5-a48df9ad7964b247-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "b8f73f19-a057-9bed-f7bb-348b1d7015ba", + "x-ms-date": "Fri, 18 Dec 2020 22:16:54 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:16:53 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "b8f73f19-a057-9bed-f7bb-348b1d7015ba", + "x-ms-request-id": "79cc228c-a01e-0099-6c8b-d5321d000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T14:16:53.7177641-08:00", + "RandomSeed": "1689898744", + "Storage_TestConfigHierarchicalNamespace": "NamespaceTenant\nkasobolcanaryhns\nU2FuaXRpemVk\nhttps://kasobolcanaryhns.blob.core.windows.net\nhttps://kasobolcanaryhns.file.core.windows.net\nhttps://kasobolcanaryhns.queue.core.windows.net\nhttps://kasobolcanaryhns.table.core.windows.net\n\n\n\n\nhttps://kasobolcanaryhns-secondary.blob.core.windows.net\nhttps://kasobolcanaryhns-secondary.file.core.windows.net\nhttps://kasobolcanaryhns-secondary.queue.core.windows.net\nhttps://kasobolcanaryhns-secondary.table.core.windows.net\nc6b5fe1a-9b59-4975-92c4-d9f728c3c371\nSanitized\n72f988bf-86f1-41af-91ab-2d7cd011db47\nhttps://login.microsoftonline.com/\nCloud\nBlobEndpoint=https://kasobolcanaryhns.blob.core.windows.net/;QueueEndpoint=https://kasobolcanaryhns.queue.core.windows.net/;FileEndpoint=https://kasobolcanaryhns.file.core.windows.net/;BlobSecondaryEndpoint=https://kasobolcanaryhns-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasobolcanaryhns-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasobolcanaryhns-secondary.file.core.windows.net/;AccountName=kasobolcanaryhns;AccountKey=Sanitized\n" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileSystemClientTests/Ctor_AzureSasCredential.json b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileSystemClientTests/Ctor_AzureSasCredential.json new file mode 100644 index 000000000000..35d972850c21 --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileSystemClientTests/Ctor_AzureSasCredential.json @@ -0,0 +1,109 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-d210280e-00b8-3166-91fe-8d5be98e7400?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-78e547d77bf8944eaca113873539a137-40036aa15f3d9043-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "178cc567-021e-1671-745b-c33037641f30", + "x-ms-date": "Fri, 18 Dec 2020 22:07:52 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:07:52 GMT", + "ETag": "\u00220x8D8A3A15DD621F5\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:07:53 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "178cc567-021e-1671-745b-c33037641f30", + "x-ms-request-id": "c46cd52d-101e-0025-258a-d5e4dc000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-d210280e-00b8-3166-91fe-8d5be98e7400?restype=container\u0026sv=2020-04-08\u0026ss=b\u0026srt=sco\u0026st=2020-12-18T21:07:52Z\u0026se=2020-12-18T23:07:52Z\u0026sp=rwdlac\u0026sig=Sanitized", + "RequestMethod": "GET", + "RequestHeaders": { + "traceparent": "00-e2a7c81897d9f141baf037ad637840a3-ca88b485cfb44341-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "23f324ac-5d01-e6e1-a6f1-1ffa80da85a8", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:07:53 GMT", + "ETag": "\u00220x8D8A3A15DD621F5\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:07:53 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "23f324ac-5d01-e6e1-a6f1-1ffa80da85a8", + "x-ms-default-encryption-scope": "$account-encryption-key", + "x-ms-deny-encryption-scope-override": "false", + "x-ms-has-immutability-policy": "false", + "x-ms-has-legal-hold": "false", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "835ac41e-501e-009d-788a-d5bf1a000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-d210280e-00b8-3166-91fe-8d5be98e7400?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-a1ae2e3b51d76644886950ac1add72c0-89b61eb48f694c4b-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "1283f5bc-fb70-e12e-f078-b04260314a42", + "x-ms-date": "Fri, 18 Dec 2020 22:07:53 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:07:52 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "1283f5bc-fb70-e12e-f078-b04260314a42", + "x-ms-request-id": "c46cd561-101e-0025-4e8a-d5e4dc000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T14:07:52.1201177-08:00", + "RandomSeed": "422833224", + "Storage_TestConfigHierarchicalNamespace": "NamespaceTenant\nkasobolcanaryhns\nU2FuaXRpemVk\nhttps://kasobolcanaryhns.blob.core.windows.net\nhttps://kasobolcanaryhns.file.core.windows.net\nhttps://kasobolcanaryhns.queue.core.windows.net\nhttps://kasobolcanaryhns.table.core.windows.net\n\n\n\n\nhttps://kasobolcanaryhns-secondary.blob.core.windows.net\nhttps://kasobolcanaryhns-secondary.file.core.windows.net\nhttps://kasobolcanaryhns-secondary.queue.core.windows.net\nhttps://kasobolcanaryhns-secondary.table.core.windows.net\nc6b5fe1a-9b59-4975-92c4-d9f728c3c371\nSanitized\n72f988bf-86f1-41af-91ab-2d7cd011db47\nhttps://login.microsoftonline.com/\nCloud\nBlobEndpoint=https://kasobolcanaryhns.blob.core.windows.net/;QueueEndpoint=https://kasobolcanaryhns.queue.core.windows.net/;FileEndpoint=https://kasobolcanaryhns.file.core.windows.net/;BlobSecondaryEndpoint=https://kasobolcanaryhns-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasobolcanaryhns-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasobolcanaryhns-secondary.file.core.windows.net/;AccountName=kasobolcanaryhns;AccountKey=Sanitized\n" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileSystemClientTests/Ctor_AzureSasCredentialAsync.json b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileSystemClientTests/Ctor_AzureSasCredentialAsync.json new file mode 100644 index 000000000000..19d290f5e3db --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileSystemClientTests/Ctor_AzureSasCredentialAsync.json @@ -0,0 +1,109 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-0f430e4e-4c13-4d04-d1ec-70f712abf16e?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-cef4bb35e9a0954b8dc0d6d971592810-2e04ab672b96dd44-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "fb14f9a6-2cc1-a659-4ad4-dd957026815c", + "x-ms-date": "Fri, 18 Dec 2020 22:07:54 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:07:54 GMT", + "ETag": "\u00220x8D8A3A15E77F1D3\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:07:54 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "fb14f9a6-2cc1-a659-4ad4-dd957026815c", + "x-ms-request-id": "da3bb225-c01e-0026-068a-d505b8000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-0f430e4e-4c13-4d04-d1ec-70f712abf16e?restype=container\u0026sv=2020-04-08\u0026ss=b\u0026srt=sco\u0026st=2020-12-18T21:07:54Z\u0026se=2020-12-18T23:07:54Z\u0026sp=rwdlac\u0026sig=Sanitized", + "RequestMethod": "GET", + "RequestHeaders": { + "traceparent": "00-824442ebe0ad234ca038b6bed712b35a-990d33eae0e8c141-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "195037f1-f597-14ad-9f86-e43d42240cde", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:07:54 GMT", + "ETag": "\u00220x8D8A3A15E77F1D3\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:07:54 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "195037f1-f597-14ad-9f86-e43d42240cde", + "x-ms-default-encryption-scope": "$account-encryption-key", + "x-ms-deny-encryption-scope-override": "false", + "x-ms-has-immutability-policy": "false", + "x-ms-has-legal-hold": "false", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "b033660a-601e-0062-0a8a-d58f87000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-0f430e4e-4c13-4d04-d1ec-70f712abf16e?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-5267843c80077a4db1aa9c9cc0638378-6379bdd5a86a5c42-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "38a33a79-68d6-78c4-d099-e9792f01ea2f", + "x-ms-date": "Fri, 18 Dec 2020 22:07:54 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:07:54 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "38a33a79-68d6-78c4-d099-e9792f01ea2f", + "x-ms-request-id": "da3bb2ff-c01e-0026-558a-d505b8000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T14:07:54.0331155-08:00", + "RandomSeed": "1366619153", + "Storage_TestConfigHierarchicalNamespace": "NamespaceTenant\nkasobolcanaryhns\nU2FuaXRpemVk\nhttps://kasobolcanaryhns.blob.core.windows.net\nhttps://kasobolcanaryhns.file.core.windows.net\nhttps://kasobolcanaryhns.queue.core.windows.net\nhttps://kasobolcanaryhns.table.core.windows.net\n\n\n\n\nhttps://kasobolcanaryhns-secondary.blob.core.windows.net\nhttps://kasobolcanaryhns-secondary.file.core.windows.net\nhttps://kasobolcanaryhns-secondary.queue.core.windows.net\nhttps://kasobolcanaryhns-secondary.table.core.windows.net\nc6b5fe1a-9b59-4975-92c4-d9f728c3c371\nSanitized\n72f988bf-86f1-41af-91ab-2d7cd011db47\nhttps://login.microsoftonline.com/\nCloud\nBlobEndpoint=https://kasobolcanaryhns.blob.core.windows.net/;QueueEndpoint=https://kasobolcanaryhns.queue.core.windows.net/;FileEndpoint=https://kasobolcanaryhns.file.core.windows.net/;BlobSecondaryEndpoint=https://kasobolcanaryhns-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasobolcanaryhns-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasobolcanaryhns-secondary.file.core.windows.net/;AccountName=kasobolcanaryhns;AccountKey=Sanitized\n" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileSystemClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileSystemClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json new file mode 100644 index 000000000000..9e389294b3ac --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileSystemClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json @@ -0,0 +1,72 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-32bdcfc0-e66a-40be-3b48-a19f982f98bf?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-d63bb3d0fda1a94599ddfc4dffe158c3-c611ee205714fc42-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "f7dad98a-085d-6ba9-4a42-727b747b7d32", + "x-ms-date": "Fri, 18 Dec 2020 22:09:26 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:09:27 GMT", + "ETag": "\u00220x8D8A3A195E61A7A\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:09:27 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "f7dad98a-085d-6ba9-4a42-727b747b7d32", + "x-ms-request-id": "e285fd7f-a01e-0042-178a-d5f420000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-32bdcfc0-e66a-40be-3b48-a19f982f98bf?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-8182baabfff56541bf22f016459216b9-2dfaa6ed515ef849-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "bf14cc80-a055-8662-4404-8362ee61ab4f", + "x-ms-date": "Fri, 18 Dec 2020 22:09:27 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:09:27 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "bf14cc80-a055-8662-4404-8362ee61ab4f", + "x-ms-request-id": "e285fdf4-a01e-0042-068a-d5f420000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T14:09:26.1153978-08:00", + "RandomSeed": "378882348", + "Storage_TestConfigHierarchicalNamespace": "NamespaceTenant\nkasobolcanaryhns\nU2FuaXRpemVk\nhttps://kasobolcanaryhns.blob.core.windows.net\nhttps://kasobolcanaryhns.file.core.windows.net\nhttps://kasobolcanaryhns.queue.core.windows.net\nhttps://kasobolcanaryhns.table.core.windows.net\n\n\n\n\nhttps://kasobolcanaryhns-secondary.blob.core.windows.net\nhttps://kasobolcanaryhns-secondary.file.core.windows.net\nhttps://kasobolcanaryhns-secondary.queue.core.windows.net\nhttps://kasobolcanaryhns-secondary.table.core.windows.net\nc6b5fe1a-9b59-4975-92c4-d9f728c3c371\nSanitized\n72f988bf-86f1-41af-91ab-2d7cd011db47\nhttps://login.microsoftonline.com/\nCloud\nBlobEndpoint=https://kasobolcanaryhns.blob.core.windows.net/;QueueEndpoint=https://kasobolcanaryhns.queue.core.windows.net/;FileEndpoint=https://kasobolcanaryhns.file.core.windows.net/;BlobSecondaryEndpoint=https://kasobolcanaryhns-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasobolcanaryhns-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasobolcanaryhns-secondary.file.core.windows.net/;AccountName=kasobolcanaryhns;AccountKey=Sanitized\n" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileSystemClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileSystemClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json new file mode 100644 index 000000000000..10c857dc07f2 --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/FileSystemClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json @@ -0,0 +1,72 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-d38e5717-c0e5-da9d-d548-7178b212c67d?restype=container", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-c64f188a2fe2ff42987c0ae8b6dc9299-84c6a77f6054d744-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-blob-public-access": "container", + "x-ms-client-request-id": "35bc8ad6-07e5-aca1-b1d8-9dd57b99558f", + "x-ms-date": "Fri, 18 Dec 2020 22:09:27 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:09:27 GMT", + "ETag": "\u00220x8D8A3A19662340E\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:09:28 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "35bc8ad6-07e5-aca1-b1d8-9dd57b99558f", + "x-ms-request-id": "c6bf201c-901e-0092-4d8a-d5c976000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/test-filesystem-d38e5717-c0e5-da9d-d548-7178b212c67d?restype=container", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-a79216d875f5ab42b8dece3df98bb94c-f14890b8712c7147-00", + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "28a1cb30-9056-af97-06e7-ae667cba3287", + "x-ms-date": "Fri, 18 Dec 2020 22:09:28 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:09:27 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "28a1cb30-9056-af97-06e7-ae667cba3287", + "x-ms-request-id": "c6bf2029-901e-0092-548a-d5c976000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T14:09:27.8472229-08:00", + "RandomSeed": "858899711", + "Storage_TestConfigHierarchicalNamespace": "NamespaceTenant\nkasobolcanaryhns\nU2FuaXRpemVk\nhttps://kasobolcanaryhns.blob.core.windows.net\nhttps://kasobolcanaryhns.file.core.windows.net\nhttps://kasobolcanaryhns.queue.core.windows.net\nhttps://kasobolcanaryhns.table.core.windows.net\n\n\n\n\nhttps://kasobolcanaryhns-secondary.blob.core.windows.net\nhttps://kasobolcanaryhns-secondary.file.core.windows.net\nhttps://kasobolcanaryhns-secondary.queue.core.windows.net\nhttps://kasobolcanaryhns-secondary.table.core.windows.net\nc6b5fe1a-9b59-4975-92c4-d9f728c3c371\nSanitized\n72f988bf-86f1-41af-91ab-2d7cd011db47\nhttps://login.microsoftonline.com/\nCloud\nBlobEndpoint=https://kasobolcanaryhns.blob.core.windows.net/;QueueEndpoint=https://kasobolcanaryhns.queue.core.windows.net/;FileEndpoint=https://kasobolcanaryhns.file.core.windows.net/;BlobSecondaryEndpoint=https://kasobolcanaryhns-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasobolcanaryhns-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasobolcanaryhns-secondary.file.core.windows.net/;AccountName=kasobolcanaryhns;AccountKey=Sanitized\n" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential.json b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential.json new file mode 100644 index 000000000000..cf248c9bd9e5 --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential.json @@ -0,0 +1,37 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/?comp=list\u0026sv=2020-04-08\u0026ss=b\u0026srt=sco\u0026st=2020-12-18T21:00:27Z\u0026se=2020-12-18T23:00:27Z\u0026sp=rwdlac\u0026sig=Sanitized", + "RequestMethod": "GET", + "RequestHeaders": { + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "4fa417ef-51ef-69a8-8907-9e9cac21b707", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Type": "application/xml", + "Date": "Fri, 18 Dec 2020 22:00:28 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Transfer-Encoding": "chunked", + "x-ms-client-request-id": "4fa417ef-51ef-69a8-8907-9e9cac21b707", + "x-ms-request-id": "e5a0fbfb-f01e-002d-3689-d5fed3000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": "\uFEFF\u003C?xml version=\u00221.0\u0022 encoding=\u0022utf-8\u0022?\u003E\u003CEnumerationResults ServiceEndpoint=\u0022https://kasobolcanaryhns.blob.core.windows.net/\u0022\u003E\u003CContainers\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmax051202ecb10e5d581543239\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:52:53 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D801953BBD78FC\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmax066722beb0df80bf9045b09\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:52:55 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D801953CD53760\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmax082631637b4a1848dd4874a\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:52:52 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D801953B2DA168\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmax0828597a8b798b66f14b39b\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:52:54 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D801953C478319\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmax0925605ab32916f5a743308\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:52:50 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D801953A21CC1A\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmaxasync0140271814135d4eed40f\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:50:30 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019D4858E3B4\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmaxasync033408c45719171ad749b\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:50:35 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019D4B5A3D31\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmaxasync0443608a3611a3deb5479\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:50:34 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019D4A9E1E36\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmaxasync0553611f93c2cc44f8477\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:50:33 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019D49FF40C3\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmaxasync0758460326a89e270e4b7\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:50:36 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019D4BF3D9D5\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin0173629e19a222cb134330b\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003EWed, 20 May 2020 22:20:34 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D7FD0C0411A490\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin019335b85bec80d0f04f359\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:51:22 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D80195055C6940\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin0207718c33745cde0d46e58\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:38:42 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D80193408A29C5\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin0253220bd5975e2c2b49cc9\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:51:24 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D80195068E1BA4\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin026116236e8f98ca4d484e9\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:51:23 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019505F8292B\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin0279479ad7b1265b2f4dd9a\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:51:21 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019504C341E2\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin033835e95f55be8e4b43a09\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003EWed, 20 May 2020 22:22:35 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D7FD0C4C0C162E\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin0354093eece0be2a7748de9\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:38:39 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D801933EB9D0C0\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin0535356fcb7ba790744e54b\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:38:45 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019342149368\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin05477658cdb5cd60024629b\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003EWed, 20 May 2020 22:22:36 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D7FD0C4C8B969C\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin063205e616696d26124af6b\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:51:19 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D80195037FB212\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin070066150919fe6faa4c429\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003EWed, 20 May 2020 22:22:33 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D7FD0C4B0EC35D\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin0729636523a96857cb44c0b\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:38:44 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D80193418F1EB4\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin088722fd740974e47148cab\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003EWed, 20 May 2020 22:22:32 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D7FD0C4A4F2101\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin094090990ba7ab3b694bbea\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:38:43 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D80193410F776D\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin098040e8271bd3555f484ea\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003EWed, 20 May 2020 22:22:34 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D7FD0C4B921509\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionminasync002161a20ed8e60f0c4a8\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:46:10 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019CACF7FF73\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionminasync00413912c33392ce394b3\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:43:00 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019C3BAECCF2\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionminasync039474428258b759704a3\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:43:02 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019C3CFF93A9\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionminasync0423303ce4ac8c65de46b\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:46:09 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019CAC662C1B\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionminasync0514312bb11dfb72e341d\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:46:11 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019CADA2B693\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionminasync063290740f1d515dac4ce\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:42:57 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019C3A136FCB\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionminasync0813165aafd86faa29481\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:43:01 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019C3C6AB2D1\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionminasync083290f2dfab84fecb4f0\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:46:06 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019CAAA405DB\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionminasync0859032c1df3c0634743c\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:43:03 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019C3D9B17E0\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionminasync093150b46b530044d0456\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:45:57 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019CA58609CD\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003C/Containers\u003E\u003CNextMarker /\u003E\u003C/EnumerationResults\u003E" + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T14:00:27.6109857-08:00", + "RandomSeed": "1268626452", + "Storage_TestConfigHierarchicalNamespace": "NamespaceTenant\nkasobolcanaryhns\nU2FuaXRpemVk\nhttps://kasobolcanaryhns.blob.core.windows.net\nhttps://kasobolcanaryhns.file.core.windows.net\nhttps://kasobolcanaryhns.queue.core.windows.net\nhttps://kasobolcanaryhns.table.core.windows.net\n\n\n\n\nhttps://kasobolcanaryhns-secondary.blob.core.windows.net\nhttps://kasobolcanaryhns-secondary.file.core.windows.net\nhttps://kasobolcanaryhns-secondary.queue.core.windows.net\nhttps://kasobolcanaryhns-secondary.table.core.windows.net\nc6b5fe1a-9b59-4975-92c4-d9f728c3c371\nSanitized\n72f988bf-86f1-41af-91ab-2d7cd011db47\nhttps://login.microsoftonline.com/\nCloud\nBlobEndpoint=https://kasobolcanaryhns.blob.core.windows.net/;QueueEndpoint=https://kasobolcanaryhns.queue.core.windows.net/;FileEndpoint=https://kasobolcanaryhns.file.core.windows.net/;BlobSecondaryEndpoint=https://kasobolcanaryhns-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasobolcanaryhns-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasobolcanaryhns-secondary.file.core.windows.net/;AccountName=kasobolcanaryhns;AccountKey=Sanitized\n" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredentialAsync.json b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredentialAsync.json new file mode 100644 index 000000000000..f0606ecc642e --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredentialAsync.json @@ -0,0 +1,37 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasobolcanaryhns.blob.core.windows.net/?comp=list\u0026sv=2020-04-08\u0026ss=b\u0026srt=sco\u0026st=2020-12-18T21:00:28Z\u0026se=2020-12-18T23:00:28Z\u0026sp=rwdlac\u0026sig=Sanitized", + "RequestMethod": "GET", + "RequestHeaders": { + "User-Agent": [ + "azsdk-net-Storage.Files.DataLake/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "db556045-4a22-eb1e-8014-a528242114c3", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Type": "application/xml", + "Date": "Fri, 18 Dec 2020 22:00:28 GMT", + "Server": [ + "Windows-Azure-Blob/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Transfer-Encoding": "chunked", + "x-ms-client-request-id": "db556045-4a22-eb1e-8014-a528242114c3", + "x-ms-request-id": "b3d152c2-a01e-007d-2589-d53c83000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": "\uFEFF\u003C?xml version=\u00221.0\u0022 encoding=\u0022utf-8\u0022?\u003E\u003CEnumerationResults ServiceEndpoint=\u0022https://kasobolcanaryhns.blob.core.windows.net/\u0022\u003E\u003CContainers\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmax051202ecb10e5d581543239\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:52:53 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D801953BBD78FC\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmax066722beb0df80bf9045b09\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:52:55 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D801953CD53760\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmax082631637b4a1848dd4874a\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:52:52 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D801953B2DA168\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmax0828597a8b798b66f14b39b\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:52:54 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D801953C478319\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmax0925605ab32916f5a743308\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:52:50 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D801953A21CC1A\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmaxasync0140271814135d4eed40f\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:50:30 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019D4858E3B4\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmaxasync033408c45719171ad749b\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:50:35 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019D4B5A3D31\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmaxasync0443608a3611a3deb5479\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:50:34 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019D4A9E1E36\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmaxasync0553611f93c2cc44f8477\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:50:33 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019D49FF40C3\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmaxasync0758460326a89e270e4b7\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:50:36 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019D4BF3D9D5\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin0173629e19a222cb134330b\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003EWed, 20 May 2020 22:20:34 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D7FD0C0411A490\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin019335b85bec80d0f04f359\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:51:22 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D80195055C6940\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin0207718c33745cde0d46e58\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:38:42 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D80193408A29C5\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin0253220bd5975e2c2b49cc9\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:51:24 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D80195068E1BA4\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin026116236e8f98ca4d484e9\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:51:23 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019505F8292B\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin0279479ad7b1265b2f4dd9a\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:51:21 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019504C341E2\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin033835e95f55be8e4b43a09\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003EWed, 20 May 2020 22:22:35 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D7FD0C4C0C162E\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin0354093eece0be2a7748de9\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:38:39 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D801933EB9D0C0\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin0535356fcb7ba790744e54b\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:38:45 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019342149368\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin05477658cdb5cd60024629b\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003EWed, 20 May 2020 22:22:36 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D7FD0C4C8B969C\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin063205e616696d26124af6b\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:51:19 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D80195037FB212\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin070066150919fe6faa4c429\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003EWed, 20 May 2020 22:22:33 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D7FD0C4B0EC35D\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin0729636523a96857cb44c0b\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:38:44 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D80193418F1EB4\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin088722fd740974e47148cab\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003EWed, 20 May 2020 22:22:32 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D7FD0C4A4F2101\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin094090990ba7ab3b694bbea\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 16:38:43 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D80193410F776D\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionmin098040e8271bd3555f484ea\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003EWed, 20 May 2020 22:22:34 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D7FD0C4B921509\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionminasync002161a20ed8e60f0c4a8\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:46:10 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019CACF7FF73\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionminasync00413912c33392ce394b3\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:43:00 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019C3BAECCF2\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionminasync039474428258b759704a3\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:43:02 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019C3CFF93A9\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionminasync0423303ce4ac8c65de46b\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:46:09 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019CAC662C1B\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionminasync0514312bb11dfb72e341d\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:46:11 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019CADA2B693\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionminasync063290740f1d515dac4ce\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:42:57 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019C3A136FCB\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionminasync0813165aafd86faa29481\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:43:01 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019C3C6AB2D1\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionminasync083290f2dfab84fecb4f0\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:46:06 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019CAAA405DB\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionminasync0859032c1df3c0634743c\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:43:03 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019C3D9B17E0\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003CContainer\u003E\u003CName\u003Ejtcscheduledeletionminasync093150b46b530044d0456\u003C/Name\u003E\u003CProperties\u003E\u003CLast-Modified\u003ETue, 26 May 2020 17:45:57 GMT\u003C/Last-Modified\u003E\u003CEtag\u003E\u00220x8D8019CA58609CD\u0022\u003C/Etag\u003E\u003CLeaseStatus\u003Eunlocked\u003C/LeaseStatus\u003E\u003CLeaseState\u003Eavailable\u003C/LeaseState\u003E\u003CDefaultEncryptionScope\u003E$account-encryption-key\u003C/DefaultEncryptionScope\u003E\u003CDenyEncryptionScopeOverride\u003Efalse\u003C/DenyEncryptionScopeOverride\u003E\u003CHasImmutabilityPolicy\u003Efalse\u003C/HasImmutabilityPolicy\u003E\u003CHasLegalHold\u003Efalse\u003C/HasLegalHold\u003E\u003C/Properties\u003E\u003C/Container\u003E\u003C/Containers\u003E\u003CNextMarker /\u003E\u003C/EnumerationResults\u003E" + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T14:00:28.8041168-08:00", + "RandomSeed": "1643338073", + "Storage_TestConfigHierarchicalNamespace": "NamespaceTenant\nkasobolcanaryhns\nU2FuaXRpemVk\nhttps://kasobolcanaryhns.blob.core.windows.net\nhttps://kasobolcanaryhns.file.core.windows.net\nhttps://kasobolcanaryhns.queue.core.windows.net\nhttps://kasobolcanaryhns.table.core.windows.net\n\n\n\n\nhttps://kasobolcanaryhns-secondary.blob.core.windows.net\nhttps://kasobolcanaryhns-secondary.file.core.windows.net\nhttps://kasobolcanaryhns-secondary.queue.core.windows.net\nhttps://kasobolcanaryhns-secondary.table.core.windows.net\nc6b5fe1a-9b59-4975-92c4-d9f728c3c371\nSanitized\n72f988bf-86f1-41af-91ab-2d7cd011db47\nhttps://login.microsoftonline.com/\nCloud\nBlobEndpoint=https://kasobolcanaryhns.blob.core.windows.net/;QueueEndpoint=https://kasobolcanaryhns.queue.core.windows.net/;FileEndpoint=https://kasobolcanaryhns.file.core.windows.net/;BlobSecondaryEndpoint=https://kasobolcanaryhns-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasobolcanaryhns-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasobolcanaryhns-secondary.file.core.windows.net/;AccountName=kasobolcanaryhns;AccountKey=Sanitized\n" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json new file mode 100644 index 000000000000..a4f3a53af339 --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json @@ -0,0 +1,8 @@ +{ + "Entries": [], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T14:00:49.0934313-08:00", + "RandomSeed": "1159255811", + "Storage_TestConfigHierarchicalNamespace": "NamespaceTenant\nkasobolcanaryhns\nU2FuaXRpemVk\nhttps://kasobolcanaryhns.blob.core.windows.net\nhttps://kasobolcanaryhns.file.core.windows.net\nhttps://kasobolcanaryhns.queue.core.windows.net\nhttps://kasobolcanaryhns.table.core.windows.net\n\n\n\n\nhttps://kasobolcanaryhns-secondary.blob.core.windows.net\nhttps://kasobolcanaryhns-secondary.file.core.windows.net\nhttps://kasobolcanaryhns-secondary.queue.core.windows.net\nhttps://kasobolcanaryhns-secondary.table.core.windows.net\nc6b5fe1a-9b59-4975-92c4-d9f728c3c371\nSanitized\n72f988bf-86f1-41af-91ab-2d7cd011db47\nhttps://login.microsoftonline.com/\nCloud\nBlobEndpoint=https://kasobolcanaryhns.blob.core.windows.net/;QueueEndpoint=https://kasobolcanaryhns.queue.core.windows.net/;FileEndpoint=https://kasobolcanaryhns.file.core.windows.net/;BlobSecondaryEndpoint=https://kasobolcanaryhns-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasobolcanaryhns-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasobolcanaryhns-secondary.file.core.windows.net/;AccountName=kasobolcanaryhns;AccountKey=Sanitized\n" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json new file mode 100644 index 000000000000..464e2bac5e71 --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.DataLake/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json @@ -0,0 +1,8 @@ +{ + "Entries": [], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T14:00:49.4204144-08:00", + "RandomSeed": "1690808523", + "Storage_TestConfigHierarchicalNamespace": "NamespaceTenant\nkasobolcanaryhns\nU2FuaXRpemVk\nhttps://kasobolcanaryhns.blob.core.windows.net\nhttps://kasobolcanaryhns.file.core.windows.net\nhttps://kasobolcanaryhns.queue.core.windows.net\nhttps://kasobolcanaryhns.table.core.windows.net\n\n\n\n\nhttps://kasobolcanaryhns-secondary.blob.core.windows.net\nhttps://kasobolcanaryhns-secondary.file.core.windows.net\nhttps://kasobolcanaryhns-secondary.queue.core.windows.net\nhttps://kasobolcanaryhns-secondary.table.core.windows.net\nc6b5fe1a-9b59-4975-92c4-d9f728c3c371\nSanitized\n72f988bf-86f1-41af-91ab-2d7cd011db47\nhttps://login.microsoftonline.com/\nCloud\nBlobEndpoint=https://kasobolcanaryhns.blob.core.windows.net/;QueueEndpoint=https://kasobolcanaryhns.queue.core.windows.net/;FileEndpoint=https://kasobolcanaryhns.file.core.windows.net/;BlobSecondaryEndpoint=https://kasobolcanaryhns-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasobolcanaryhns-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasobolcanaryhns-secondary.file.core.windows.net/;AccountName=kasobolcanaryhns;AccountKey=Sanitized\n" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.Shares/CHANGELOG.md b/sdk/storage/Azure.Storage.Files.Shares/CHANGELOG.md index 44d420f28024..8ae3728b71d3 100644 --- a/sdk/storage/Azure.Storage.Files.Shares/CHANGELOG.md +++ b/sdk/storage/Azure.Storage.Files.Shares/CHANGELOG.md @@ -2,6 +2,7 @@ ## 12.6.0-beta.2 (Unreleased) - Fixed bug where the Stream returned by ShareFileClient.OpenRead() would return a different Length after calls to Seek(). +- Added support for AzureSasCredential. That allows SAS rotation for long living clients. ## 12.6.0-beta.1 (2020-12-07) - Added support for service version 2020-04-08. diff --git a/sdk/storage/Azure.Storage.Files.Shares/api/Azure.Storage.Files.Shares.netstandard2.0.cs b/sdk/storage/Azure.Storage.Files.Shares/api/Azure.Storage.Files.Shares.netstandard2.0.cs index c46eefafd015..cc3e619709c0 100644 --- a/sdk/storage/Azure.Storage.Files.Shares/api/Azure.Storage.Files.Shares.netstandard2.0.cs +++ b/sdk/storage/Azure.Storage.Files.Shares/api/Azure.Storage.Files.Shares.netstandard2.0.cs @@ -5,6 +5,7 @@ public partial class ShareClient protected ShareClient() { } public ShareClient(string connectionString, string shareName) { } public ShareClient(string connectionString, string shareName, Azure.Storage.Files.Shares.ShareClientOptions options) { } + public ShareClient(System.Uri shareUri, Azure.AzureSasCredential credential, Azure.Storage.Files.Shares.ShareClientOptions options = null) { } public ShareClient(System.Uri shareUri, Azure.Storage.Files.Shares.ShareClientOptions options = null) { } public ShareClient(System.Uri shareUri, Azure.Storage.StorageSharedKeyCredential credential, Azure.Storage.Files.Shares.ShareClientOptions options = null) { } public virtual string AccountName { get { throw null; } } @@ -110,6 +111,7 @@ public partial class ShareDirectoryClient protected ShareDirectoryClient() { } public ShareDirectoryClient(string connectionString, string shareName, string directoryPath) { } public ShareDirectoryClient(string connectionString, string shareName, string directoryPath, Azure.Storage.Files.Shares.ShareClientOptions options) { } + public ShareDirectoryClient(System.Uri directoryUri, Azure.AzureSasCredential credential, Azure.Storage.Files.Shares.ShareClientOptions options = null) { } public ShareDirectoryClient(System.Uri directoryUri, Azure.Storage.Files.Shares.ShareClientOptions options = null) { } public ShareDirectoryClient(System.Uri directoryUri, Azure.Storage.StorageSharedKeyCredential credential, Azure.Storage.Files.Shares.ShareClientOptions options = null) { } public virtual string AccountName { get { throw null; } } @@ -169,6 +171,7 @@ public partial class ShareFileClient protected ShareFileClient() { } public ShareFileClient(string connectionString, string shareName, string filePath) { } public ShareFileClient(string connectionString, string shareName, string filePath, Azure.Storage.Files.Shares.ShareClientOptions options) { } + public ShareFileClient(System.Uri fileUri, Azure.AzureSasCredential credential, Azure.Storage.Files.Shares.ShareClientOptions options = null) { } public ShareFileClient(System.Uri fileUri, Azure.Storage.Files.Shares.ShareClientOptions options = null) { } public ShareFileClient(System.Uri fileUri, Azure.Storage.StorageSharedKeyCredential credential, Azure.Storage.Files.Shares.ShareClientOptions options = null) { } public virtual string AccountName { get { throw null; } } @@ -288,6 +291,7 @@ public partial class ShareServiceClient protected ShareServiceClient() { } public ShareServiceClient(string connectionString) { } public ShareServiceClient(string connectionString, Azure.Storage.Files.Shares.ShareClientOptions options) { } + public ShareServiceClient(System.Uri serviceUri, Azure.AzureSasCredential credential, Azure.Storage.Files.Shares.ShareClientOptions options = null) { } public ShareServiceClient(System.Uri serviceUri, Azure.Storage.Files.Shares.ShareClientOptions options = null) { } public ShareServiceClient(System.Uri serviceUri, Azure.Storage.StorageSharedKeyCredential credential, Azure.Storage.Files.Shares.ShareClientOptions options = null) { } public virtual string AccountName { get { throw null; } } diff --git a/sdk/storage/Azure.Storage.Files.Shares/src/Azure.Storage.Files.Shares.csproj b/sdk/storage/Azure.Storage.Files.Shares/src/Azure.Storage.Files.Shares.csproj index 5c00bdb53411..b48bb1222c14 100644 --- a/sdk/storage/Azure.Storage.Files.Shares/src/Azure.Storage.Files.Shares.csproj +++ b/sdk/storage/Azure.Storage.Files.Shares/src/Azure.Storage.Files.Shares.csproj @@ -25,7 +25,9 @@ + + diff --git a/sdk/storage/Azure.Storage.Files.Shares/src/ShareClient.cs b/sdk/storage/Azure.Storage.Files.Shares/src/ShareClient.cs index 0b9fef633261..5009d0a235bc 100644 --- a/sdk/storage/Azure.Storage.Files.Shares/src/ShareClient.cs +++ b/sdk/storage/Azure.Storage.Files.Shares/src/ShareClient.cs @@ -219,6 +219,31 @@ public ShareClient(Uri shareUri, StorageSharedKeyCredential credential, ShareCli { } + /// + /// Initializes a new instance of the + /// class. + /// + /// + /// A referencing the share that includes the + /// name of the account and the name of the share. + /// Must not contain shared access signature, which should be passed in the second parameter. + /// + /// + /// The shared access signature credential used to sign requests. + /// + /// + /// Optional client options that define the transport pipeline + /// policies for authentication, retries, etc., that are applied to + /// every request. + /// + /// + /// This constructor should only be used when shared access signature needs to be updated during lifespan of this client. + /// + public ShareClient(Uri shareUri, AzureSasCredential credential, ShareClientOptions options = default) + : this(shareUri, credential.AsPolicy(shareUri), options, null) + { + } + /// /// Initializes a new instance of the /// class. @@ -244,6 +269,7 @@ internal ShareClient( ShareClientOptions options, StorageSharedKeyCredential storageSharedKeyCredential) { + Argument.AssertNotNull(shareUri, nameof(shareUri)); options ??= new ShareClientOptions(); _uri = shareUri; _pipeline = options.Build(authentication); diff --git a/sdk/storage/Azure.Storage.Files.Shares/src/ShareDirectoryClient.cs b/sdk/storage/Azure.Storage.Files.Shares/src/ShareDirectoryClient.cs index a1f24e473727..2e01331e2bb5 100644 --- a/sdk/storage/Azure.Storage.Files.Shares/src/ShareDirectoryClient.cs +++ b/sdk/storage/Azure.Storage.Files.Shares/src/ShareDirectoryClient.cs @@ -261,6 +261,32 @@ public ShareDirectoryClient(Uri directoryUri, StorageSharedKeyCredential credent { } + /// + /// Initializes a new instance of the + /// class. + /// + /// + /// A referencing the directory that includes the + /// name of the account, the name of the share, and the path of the + /// directory. + /// Must not contain shared access signature, which should be passed in the second parameter. + /// + /// + /// The shared access signature credential used to sign requests. + /// + /// + /// Optional client options that define the transport pipeline + /// policies for authentication, retries, etc., that are applied to + /// every request. + /// + /// + /// This constructor should only be used when shared access signature needs to be updated during lifespan of this client. + /// + public ShareDirectoryClient(Uri directoryUri, AzureSasCredential credential, ShareClientOptions options = default) + : this(directoryUri, credential.AsPolicy(directoryUri), options, null) + { + } + /// /// Initializes a new instance of the /// class. @@ -287,6 +313,7 @@ internal ShareDirectoryClient( ShareClientOptions options, StorageSharedKeyCredential storageSharedKeyCredential) { + Argument.AssertNotNull(directoryUri, nameof(directoryUri)); options ??= new ShareClientOptions(); _uri = directoryUri; _pipeline = options.Build(authentication); diff --git a/sdk/storage/Azure.Storage.Files.Shares/src/ShareFileClient.cs b/sdk/storage/Azure.Storage.Files.Shares/src/ShareFileClient.cs index 0823de4f1487..ec7b5db39a16 100644 --- a/sdk/storage/Azure.Storage.Files.Shares/src/ShareFileClient.cs +++ b/sdk/storage/Azure.Storage.Files.Shares/src/ShareFileClient.cs @@ -273,6 +273,31 @@ public ShareFileClient(Uri fileUri, StorageSharedKeyCredential credential, Share { } + /// + /// Initializes a new instance of the class. + /// + /// + /// A referencing the file that includes the + /// name of the account, the name of the share, and the path of the + /// file. + /// Must not contain shared access signature, which should be passed in the second parameter. + /// + /// + /// The shared access signature credential used to sign requests. + /// + /// + /// Optional that define the transport + /// pipeline policies for authentication, retries, etc., that are + /// applied to every request. + /// + /// + /// This constructor should only be used when shared access signature needs to be updated during lifespan of this client. + /// + public ShareFileClient(Uri fileUri, AzureSasCredential credential, ShareClientOptions options = default) + : this(fileUri, credential.AsPolicy(fileUri), options, null) + { + } + /// /// Initializes a new instance of the /// class. @@ -299,6 +324,7 @@ internal ShareFileClient( ShareClientOptions options, StorageSharedKeyCredential storageSharedKeyCredential) { + Argument.AssertNotNull(fileUri, nameof(fileUri)); options ??= new ShareClientOptions(); _uri = fileUri; _pipeline = options.Build(authentication); diff --git a/sdk/storage/Azure.Storage.Files.Shares/src/ShareServiceClient.cs b/sdk/storage/Azure.Storage.Files.Shares/src/ShareServiceClient.cs index bdffba217f1a..a5decff65083 100644 --- a/sdk/storage/Azure.Storage.Files.Shares/src/ShareServiceClient.cs +++ b/sdk/storage/Azure.Storage.Files.Shares/src/ShareServiceClient.cs @@ -194,6 +194,30 @@ public ShareServiceClient(Uri serviceUri, StorageSharedKeyCredential credential, { } + /// + /// Initializes a new instance of the + /// class. + /// + /// + /// A referencing the file service. + /// Must not contain shared access signature, which should be passed in the second parameter. + /// + /// + /// The shared access signature credential used to sign requests. + /// + /// + /// Optional client options that define the transport pipeline + /// policies for authentication, retries, etc., that are applied to + /// every request. + /// + /// + /// This constructor should only be used when shared access signature needs to be updated during lifespan of this client. + /// + public ShareServiceClient(Uri serviceUri, AzureSasCredential credential, ShareClientOptions options = default) + : this(serviceUri, credential.AsPolicy(serviceUri), options, null) + { + } + /// /// Initializes a new instance of the /// class. @@ -218,6 +242,7 @@ internal ShareServiceClient( ShareClientOptions options, StorageSharedKeyCredential storageSharedKeyCredential) { + Argument.AssertNotNull(serviceUri, nameof(serviceUri)); options ??= new ShareClientOptions(); _uri = serviceUri; _pipeline = options.Build(authentication); diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/DirectoryClientTests.cs b/sdk/storage/Azure.Storage.Files.Shares/tests/DirectoryClientTests.cs index 3281c73e3696..6f4e64cae758 100644 --- a/sdk/storage/Azure.Storage.Files.Shares/tests/DirectoryClientTests.cs +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/DirectoryClientTests.cs @@ -70,6 +70,39 @@ public async Task Ctor_ConnectionStringEscapePath() Assert.AreEqual(createResponse.Value.ETag, propertiesResponse.Value.ETag); } + [Test] + public async Task Ctor_AzureSasCredential() + { + // Arrange + await using DisposingShare test = await GetTestShareAsync(); + string sas = GetNewFileServiceSasCredentialsShare(test.Share.Name).ToString(); + var client = test.Share.GetDirectoryClient(GetNewDirectoryName()); + await client.CreateAsync(); + Uri uri = client.Uri; + + // Act + var sasClient = InstrumentClient(new ShareDirectoryClient(uri, new AzureSasCredential(sas), GetOptions())); + ShareDirectoryProperties properties = await sasClient.GetPropertiesAsync(); + + // Assert + Assert.IsNotNull(properties); + } + + [Test] + public async Task Ctor_AzureSasCredential_VerifyNoSasInUri() + { + // Arrange + await using DisposingShare test = await GetTestShareAsync(); + string sas = GetNewFileServiceSasCredentialsShare(test.Share.Name).ToString(); + Uri uri = test.Share.GetDirectoryClient(GetNewDirectoryName()).Uri; + uri = new Uri(uri.ToString() + "?" + sas); + + // Act + TestHelper.AssertExpectedException( + () => new ShareDirectoryClient(uri, new AzureSasCredential(sas)), + e => e.Message.Contains($"You cannot use {nameof(AzureSasCredential)} when the resource URI also contains a Shared Access Signature")); + } + [Test] public void DirectoryPathsParsing() { diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/FileClientTests.cs b/sdk/storage/Azure.Storage.Files.Shares/tests/FileClientTests.cs index abab124abe13..22b2eb8ad89a 100644 --- a/sdk/storage/Azure.Storage.Files.Shares/tests/FileClientTests.cs +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/FileClientTests.cs @@ -75,6 +75,39 @@ public async Task Ctor_ConnectionStringEscapePath() Assert.AreEqual(createResponse.Value.ETag, propertiesResponse.Value.ETag); } + [Test] + public async Task Ctor_AzureSasCredential() + { + // Arrange + await using DisposingShare test = await GetTestShareAsync(); + string sas = GetNewFileServiceSasCredentialsShare(test.Share.Name).ToString(); + var client = test.Share.GetRootDirectoryClient().GetFileClient(GetNewFileName()); + await client.CreateAsync(1024); + Uri uri = client.Uri; + + // Act + var sasClient = InstrumentClient(new ShareFileClient(uri, new AzureSasCredential(sas), GetOptions())); + ShareFileProperties properties = await sasClient.GetPropertiesAsync(); + + // Assert + Assert.IsNotNull(properties); + } + + [Test] + public async Task Ctor_AzureSasCredential_VerifyNoSasInUri() + { + // Arrange + await using DisposingShare test = await GetTestShareAsync(); + string sas = GetNewFileServiceSasCredentialsShare(test.Share.Name).ToString(); + Uri uri = test.Share.GetRootDirectoryClient().GetFileClient(GetNewFileName()).Uri; + uri = new Uri(uri.ToString() + "?" + sas); + + // Act + TestHelper.AssertExpectedException( + () => new ShareFileClient(uri, new AzureSasCredential(sas)), + e => e.Message.Contains($"You cannot use {nameof(AzureSasCredential)} when the resource URI also contains a Shared Access Signature")); + } + [Test] public void FilePathsParsing() { diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/FileTestBase.cs b/sdk/storage/Azure.Storage.Files.Shares/tests/FileTestBase.cs index 2bc85dfc8d8f..04cfcb2f5ed2 100644 --- a/sdk/storage/Azure.Storage.Files.Shares/tests/FileTestBase.cs +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/FileTestBase.cs @@ -157,19 +157,21 @@ public StorageSharedKeyCredential GetNewSharedKeyCredentials() TestConfigDefault.AccountName, TestConfigDefault.AccountKey); - public SasQueryParameters GetNewAccountSasCredentials(StorageSharedKeyCredential sharedKeyCredentials = default) + public SasQueryParameters GetNewAccountSasCredentials(StorageSharedKeyCredential sharedKeyCredentials = default, + AccountSasResourceTypes resourceTypes = AccountSasResourceTypes.Container, + AccountSasPermissions permissions = AccountSasPermissions.Create | AccountSasPermissions.Delete) { var builder = new AccountSasBuilder { Protocol = SasProtocol.None, Services = AccountSasServices.Files, - ResourceTypes = AccountSasResourceTypes.Container, + ResourceTypes = resourceTypes, StartsOn = Recording.UtcNow.AddHours(-1), ExpiresOn = Recording.UtcNow.AddHours(+1), IPRange = new SasIPRange(IPAddress.None, IPAddress.None) }; - builder.SetPermissions(AccountSasPermissions.Create | AccountSasPermissions.Delete); - return builder.ToSasQueryParameters(sharedKeyCredentials); + builder.SetPermissions(permissions); + return builder.ToSasQueryParameters(sharedKeyCredentials ?? GetNewSharedKeyCredentials()); } public SasQueryParameters GetNewFileServiceSasCredentialsShare(string shareName, StorageSharedKeyCredential sharedKeyCredentials = default) diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/ServiceClientTests.cs b/sdk/storage/Azure.Storage.Files.Shares/tests/ServiceClientTests.cs index df2118627955..58055c769fb2 100644 --- a/sdk/storage/Azure.Storage.Files.Shares/tests/ServiceClientTests.cs +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/ServiceClientTests.cs @@ -41,6 +41,35 @@ public void Ctor_ConnectionString() //Assert.AreEqual("accountName", builder.AccountName); } + [Test] + public async Task Ctor_AzureSasCredential() + { + // Arrange + string sas = GetNewAccountSasCredentials(resourceTypes: AccountSasResourceTypes.All, permissions: AccountSasPermissions.All).ToString(); + Uri uri = GetServiceClient_SharedKey().Uri; + + // Act + var sasClient = InstrumentClient(new ShareServiceClient(uri, new AzureSasCredential(sas), GetOptions())); + ShareServiceProperties properties = await sasClient.GetPropertiesAsync(); + + // Assert + Assert.IsNotNull(properties); + } + + [Test] + public void Ctor_AzureSasCredential_VerifyNoSasInUri() + { + // Arrange + string sas = GetNewAccountSasCredentials(resourceTypes: AccountSasResourceTypes.All, permissions: AccountSasPermissions.All).ToString(); + Uri uri = GetServiceClient_SharedKey().Uri; + uri = new Uri(uri.ToString() + "?" + sas); + + // Act + TestHelper.AssertExpectedException( + () => new ShareClient(uri, new AzureSasCredential(sas)), + e => e.Message.Contains($"You cannot use {nameof(AzureSasCredential)} when the resource URI also contains a Shared Access Signature")); + } + [Test] public async Task GetPropertiesAsync() { diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredential.json b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredential.json new file mode 100644 index 000000000000..754c59f0af2d --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredential.json @@ -0,0 +1,155 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-baadf764-60e6-0591-b6c8-5067e760dc99?restype=share", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-bd8200ea02bfd04eba9597249dcee4ce-43dc084003558040-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "b9501d56-97ee-d051-735b-cd878a4331e2", + "x-ms-date": "Fri, 18 Dec 2020 22:33:06 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:33:06 GMT", + "ETag": "\u00220x8D8A3A4E3EBAA72\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:33:06 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "b9501d56-97ee-d051-735b-cd878a4331e2", + "x-ms-request-id": "876afaf1-f01a-0059-238d-d55175000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-baadf764-60e6-0591-b6c8-5067e760dc99/test-directory-616022be-9132-7d4a-9d5c-d25b0e38e22d?restype=directory", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-3adf3b6c9f7fbd419e40a48545e94ffd-e3c28dbaf5ada543-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "009b6f5a-1d28-c4ae-d3d2-1b91c4f5c13b", + "x-ms-date": "Fri, 18 Dec 2020 22:33:06 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": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:33:06 GMT", + "ETag": "\u00220x8D8A3A4E408A101\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:33:06 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "009b6f5a-1d28-c4ae-d3d2-1b91c4f5c13b", + "x-ms-file-attributes": "Directory", + "x-ms-file-change-time": "2020-12-18T22:33:06.8659969Z", + "x-ms-file-creation-time": "2020-12-18T22:33:06.8659969Z", + "x-ms-file-id": "13835128424026341376", + "x-ms-file-last-write-time": "2020-12-18T22:33:06.8659969Z", + "x-ms-file-parent-id": "0", + "x-ms-file-permission-key": "13890947526840590134*12114024658378361023", + "x-ms-request-id": "876afaf6-f01a-0059-268d-d55175000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-baadf764-60e6-0591-b6c8-5067e760dc99/test-directory-616022be-9132-7d4a-9d5c-d25b0e38e22d?restype=directory\u0026sv=2020-04-08\u0026st=2020-12-18T21:33:06Z\u0026se=2020-12-18T23:33:06Z\u0026sr=s\u0026sp=rcwdl\u0026sig=Sanitized", + "RequestMethod": "GET", + "RequestHeaders": { + "traceparent": "00-3abf4d8d95beb24ebf91c2f4303fe89d-5fcfa88687836546-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "9f012e96-e29c-2c05-c14c-f63d06192097", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:33:06 GMT", + "ETag": "\u00220x8D8A3A4E408A101\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:33:06 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Vary": "Origin", + "x-ms-client-request-id": "9f012e96-e29c-2c05-c14c-f63d06192097", + "x-ms-file-attributes": "Directory", + "x-ms-file-change-time": "2020-12-18T22:33:06.8659969Z", + "x-ms-file-creation-time": "2020-12-18T22:33:06.8659969Z", + "x-ms-file-id": "13835128424026341376", + "x-ms-file-last-write-time": "2020-12-18T22:33:06.8659969Z", + "x-ms-file-parent-id": "0", + "x-ms-file-permission-key": "13890947526840590134*12114024658378361023", + "x-ms-request-id": "d909c113-501a-001b-128d-d57a61000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-baadf764-60e6-0591-b6c8-5067e760dc99?restype=share", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-de6c2afc46b0254abbef2027edcad200-23b26d433f75734c-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "96fa506f-22f4-959e-9a11-59e67195945d", + "x-ms-date": "Fri, 18 Dec 2020 22:33:07 GMT", + "x-ms-delete-snapshots": "include", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:33:06 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "96fa506f-22f4-959e-9a11-59e67195945d", + "x-ms-request-id": "876afafc-f01a-0059-2b8d-d55175000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T14:33:06.8173763-08:00", + "RandomSeed": "1295912041", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredentialAsync.json b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredentialAsync.json new file mode 100644 index 000000000000..a7066cd11da5 --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredentialAsync.json @@ -0,0 +1,155 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-d390f12c-82fb-23fe-02bc-c796038032df?restype=share", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-2dacfbc9fec61a449c0bde5d43cfe56f-77253bbaac31a746-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "dcb61a39-77a1-c88d-df45-ea30e290a143", + "x-ms-date": "Fri, 18 Dec 2020 22:33:07 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:33:06 GMT", + "ETag": "\u00220x8D8A3A4E44A91A8\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:33:07 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "dcb61a39-77a1-c88d-df45-ea30e290a143", + "x-ms-request-id": "f9e8ab00-b01a-0055-0b8d-d5bf84000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-d390f12c-82fb-23fe-02bc-c796038032df/test-directory-a2ec5f69-d064-0755-90a9-7c631a5e9307?restype=directory", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-818438d4d08c9f4d8d6c233479b02a71-32d915498bb0034c-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "303625f6-410f-6845-c4ae-4cf8fb29ae80", + "x-ms-date": "Fri, 18 Dec 2020 22:33:07 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": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:33:06 GMT", + "ETag": "\u00220x8D8A3A4E4508BF0\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:33:07 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "303625f6-410f-6845-c4ae-4cf8fb29ae80", + "x-ms-file-attributes": "Directory", + "x-ms-file-change-time": "2020-12-18T22:33:07.3373168Z", + "x-ms-file-creation-time": "2020-12-18T22:33:07.3373168Z", + "x-ms-file-id": "13835128424026341376", + "x-ms-file-last-write-time": "2020-12-18T22:33:07.3373168Z", + "x-ms-file-parent-id": "0", + "x-ms-file-permission-key": "13890947526840590134*12114024658378361023", + "x-ms-request-id": "f9e8ab04-b01a-0055-0d8d-d5bf84000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-d390f12c-82fb-23fe-02bc-c796038032df/test-directory-a2ec5f69-d064-0755-90a9-7c631a5e9307?restype=directory\u0026sv=2020-04-08\u0026st=2020-12-18T21:33:07Z\u0026se=2020-12-18T23:33:07Z\u0026sr=s\u0026sp=rcwdl\u0026sig=Sanitized", + "RequestMethod": "GET", + "RequestHeaders": { + "traceparent": "00-f1d37113f954b149a56cbfeb0eb87ff3-94177bca0d1ff845-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "f46db5a4-6228-97f7-d8f4-241b0945fc93", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:33:06 GMT", + "ETag": "\u00220x8D8A3A4E4508BF0\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:33:07 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Vary": "Origin", + "x-ms-client-request-id": "f46db5a4-6228-97f7-d8f4-241b0945fc93", + "x-ms-file-attributes": "Directory", + "x-ms-file-change-time": "2020-12-18T22:33:07.3373168Z", + "x-ms-file-creation-time": "2020-12-18T22:33:07.3373168Z", + "x-ms-file-id": "13835128424026341376", + "x-ms-file-last-write-time": "2020-12-18T22:33:07.3373168Z", + "x-ms-file-parent-id": "0", + "x-ms-file-permission-key": "13890947526840590134*12114024658378361023", + "x-ms-request-id": "3e6fd7d9-f01a-0052-5d8d-d54901000000", + "x-ms-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-d390f12c-82fb-23fe-02bc-c796038032df?restype=share", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-f353f6cceee4544f8d41fdaf62f088ad-4a5e7660eca41244-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "4653ece2-b9bc-4e58-ebbf-ec3e935c0bdc", + "x-ms-date": "Fri, 18 Dec 2020 22:33:07 GMT", + "x-ms-delete-snapshots": "include", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:33:06 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "4653ece2-b9bc-4e58-ebbf-ec3e935c0bdc", + "x-ms-request-id": "f9e8ab07-b01a-0055-0f8d-d5bf84000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T14:33:07.3454149-08:00", + "RandomSeed": "406064618", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json new file mode 100644 index 000000000000..0f669f5ca41d --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json @@ -0,0 +1,72 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-f74451f3-1f87-f6d3-ff8b-cc3f1188abf4?restype=share", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-1e47916c624cc7468253f833a9af059c-97ca4e03f0a4654e-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "c3921806-9b22-adbf-5c35-05045214eae2", + "x-ms-date": "Fri, 18 Dec 2020 22:34:42 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:34:42 GMT", + "ETag": "\u00220x8D8A3A51D82C1EB\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:34:43 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "c3921806-9b22-adbf-5c35-05045214eae2", + "x-ms-request-id": "0c48fa36-301a-004f-478d-d590eb000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-f74451f3-1f87-f6d3-ff8b-cc3f1188abf4?restype=share", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-fde00ce8f8ec5c4dae39c528d1a96018-a626260cc3ede041-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "5574b54b-7602-7494-6488-80d5e76d25a4", + "x-ms-date": "Fri, 18 Dec 2020 22:34:43 GMT", + "x-ms-delete-snapshots": "include", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:34:42 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "5574b54b-7602-7494-6488-80d5e76d25a4", + "x-ms-request-id": "0c48fa39-301a-004f-488d-d590eb000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T14:34:43.4199352-08:00", + "RandomSeed": "1081106321", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json new file mode 100644 index 000000000000..2a402e11f9a3 --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/DirectoryClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json @@ -0,0 +1,72 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-86f20730-bc6b-27d2-814e-c270ba3047d5?restype=share", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-bb5c1cd926728947964fa7d0aee8b7d0-2bd067d94b145742-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "25292e24-df07-fd8c-17f6-53c08f635fb7", + "x-ms-date": "Fri, 18 Dec 2020 22:34:43 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:34:43 GMT", + "ETag": "\u00220x8D8A3A51DBBCA5C\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:34:43 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "25292e24-df07-fd8c-17f6-53c08f635fb7", + "x-ms-request-id": "5619b8cc-101a-0035-0b8d-d5faa6000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-86f20730-bc6b-27d2-814e-c270ba3047d5?restype=share", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-2e1fb64d2040454a9633ee30711774c3-845a8998c9679244-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "53199d9d-0f87-78d2-f972-cc6fd51e9583", + "x-ms-date": "Fri, 18 Dec 2020 22:34:43 GMT", + "x-ms-delete-snapshots": "include", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:34:43 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "53199d9d-0f87-78d2-f972-cc6fd51e9583", + "x-ms-request-id": "5619b8cf-101a-0035-0c8d-d5faa6000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T14:34:43.7189359-08:00", + "RandomSeed": "1994461587", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredential.json b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredential.json new file mode 100644 index 000000000000..02162a513875 --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredential.json @@ -0,0 +1,161 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-61b5a085-aa85-6028-99ad-02344331b4b2?restype=share", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-0093adced1eff84aae31b665634437d1-93944d517d53a94d-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "786bcd15-2fd9-2a8a-54cb-69b292ed3f4b", + "x-ms-date": "Fri, 18 Dec 2020 22:30:48 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:30:49 GMT", + "ETag": "\u00220x8D8A3A491F5CBCC\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:30:49 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "786bcd15-2fd9-2a8a-54cb-69b292ed3f4b", + "x-ms-request-id": "087f93d3-e01a-0020-028d-d5383f000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-61b5a085-aa85-6028-99ad-02344331b4b2/test-file-73b00a41-d4b8-b032-ba33-7c7da238f32e", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-7bee9d7c9ad4d14d8eb1abf54bb51acc-9cabe099cd05a442-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "62aebcc8-7cbb-4016-9bba-bea6b30d881c", + "x-ms-content-length": "1024", + "x-ms-date": "Fri, 18 Dec 2020 22:30: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": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:30:49 GMT", + "ETag": "\u00220x8D8A3A4921DAA86\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:30:49 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "62aebcc8-7cbb-4016-9bba-bea6b30d881c", + "x-ms-file-attributes": "Archive", + "x-ms-file-change-time": "2020-12-18T22:30:49.4306950Z", + "x-ms-file-creation-time": "2020-12-18T22:30:49.4306950Z", + "x-ms-file-id": "13835128424026341376", + "x-ms-file-last-write-time": "2020-12-18T22:30:49.4306950Z", + "x-ms-file-parent-id": "0", + "x-ms-file-permission-key": "53270788590723121*12114024658378361023", + "x-ms-request-id": "087f93d7-e01a-0020-048d-d5383f000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-61b5a085-aa85-6028-99ad-02344331b4b2/test-file-73b00a41-d4b8-b032-ba33-7c7da238f32e?sv=2020-04-08\u0026st=2020-12-18T21:30:49Z\u0026se=2020-12-18T23:30:49Z\u0026sr=s\u0026sp=rcwdl\u0026sig=Sanitized", + "RequestMethod": "HEAD", + "RequestHeaders": { + "traceparent": "00-0e5eef6383acfc419db240b372cdb90d-0bc0caba95d73343-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "e5b58644-9189-4072-1bdd-da0b7d32ae49", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "1024", + "Content-Type": "application/octet-stream", + "Date": "Fri, 18 Dec 2020 22:30:49 GMT", + "ETag": "\u00220x8D8A3A4921DAA86\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:30:49 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Vary": "Origin", + "x-ms-client-request-id": "e5b58644-9189-4072-1bdd-da0b7d32ae49", + "x-ms-file-attributes": "Archive", + "x-ms-file-change-time": "2020-12-18T22:30:49.4306950Z", + "x-ms-file-creation-time": "2020-12-18T22:30:49.4306950Z", + "x-ms-file-id": "13835128424026341376", + "x-ms-file-last-write-time": "2020-12-18T22:30:49.4306950Z", + "x-ms-file-parent-id": "0", + "x-ms-file-permission-key": "53270788590723121*12114024658378361023", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "a60308f5-a01a-0041-288d-d57ce0000000", + "x-ms-server-encrypted": "true", + "x-ms-type": "File", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-61b5a085-aa85-6028-99ad-02344331b4b2?restype=share", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-052c800b3f02b440a409dcf745ee325c-163546513d35d248-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "2d613777-a257-4692-c8b5-43f1ef7988ff", + "x-ms-date": "Fri, 18 Dec 2020 22:30:49 GMT", + "x-ms-delete-snapshots": "include", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:30:49 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "2d613777-a257-4692-c8b5-43f1ef7988ff", + "x-ms-request-id": "087f93dc-e01a-0020-098d-d5383f000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T14:30:49.2867504-08:00", + "RandomSeed": "682770529", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredentialAsync.json b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredentialAsync.json new file mode 100644 index 000000000000..d8dddadfb0de --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredentialAsync.json @@ -0,0 +1,161 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-36d772f9-510e-b9f4-c9fe-845e515a9d54?restype=share", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-d08b9a8da0b89f41a3caba3b7065bbf3-58a31d6485ede947-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "62d048ee-dd7a-5f05-878e-f54adb02a701", + "x-ms-date": "Fri, 18 Dec 2020 22:30:49 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:30:49 GMT", + "ETag": "\u00220x8D8A3A4925D5E20\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:30:49 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "62d048ee-dd7a-5f05-878e-f54adb02a701", + "x-ms-request-id": "379d6d36-d01a-0001-3c8d-d5550e000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-36d772f9-510e-b9f4-c9fe-845e515a9d54/test-file-312faa5a-4431-060c-1b96-b8acf90bf333", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-0ed825e58519cc4c9d44dbdfc57b5167-3b1f644d71d3104b-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "1a8e56b9-7565-a958-3cca-46e32559657b", + "x-ms-content-length": "1024", + "x-ms-date": "Fri, 18 Dec 2020 22:30: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": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:30:49 GMT", + "ETag": "\u00220x8D8A3A4926E498A\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:30:49 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "1a8e56b9-7565-a958-3cca-46e32559657b", + "x-ms-file-attributes": "Archive", + "x-ms-file-change-time": "2020-12-18T22:30:49.9590538Z", + "x-ms-file-creation-time": "2020-12-18T22:30:49.9590538Z", + "x-ms-file-id": "13835128424026341376", + "x-ms-file-last-write-time": "2020-12-18T22:30:49.9590538Z", + "x-ms-file-parent-id": "0", + "x-ms-file-permission-key": "53270788590723121*12114024658378361023", + "x-ms-request-id": "379d6d39-d01a-0001-3d8d-d5550e000000", + "x-ms-request-server-encrypted": "true", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-36d772f9-510e-b9f4-c9fe-845e515a9d54/test-file-312faa5a-4431-060c-1b96-b8acf90bf333?sv=2020-04-08\u0026st=2020-12-18T21:30:49Z\u0026se=2020-12-18T23:30:49Z\u0026sr=s\u0026sp=rcwdl\u0026sig=Sanitized", + "RequestMethod": "HEAD", + "RequestHeaders": { + "traceparent": "00-5238a0fd0b868740937702becea43e38-fdf26f160faf8543-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "a3f23b30-d97d-e1ce-a1c6-cbbff4f726f2", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "1024", + "Content-Type": "application/octet-stream", + "Date": "Fri, 18 Dec 2020 22:30:49 GMT", + "ETag": "\u00220x8D8A3A4926E498A\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:30:49 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Vary": "Origin", + "x-ms-client-request-id": "a3f23b30-d97d-e1ce-a1c6-cbbff4f726f2", + "x-ms-file-attributes": "Archive", + "x-ms-file-change-time": "2020-12-18T22:30:49.9590538Z", + "x-ms-file-creation-time": "2020-12-18T22:30:49.9590538Z", + "x-ms-file-id": "13835128424026341376", + "x-ms-file-last-write-time": "2020-12-18T22:30:49.9590538Z", + "x-ms-file-parent-id": "0", + "x-ms-file-permission-key": "53270788590723121*12114024658378361023", + "x-ms-lease-state": "available", + "x-ms-lease-status": "unlocked", + "x-ms-request-id": "0c48f540-301a-004f-028d-d590eb000000", + "x-ms-server-encrypted": "true", + "x-ms-type": "File", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-36d772f9-510e-b9f4-c9fe-845e515a9d54?restype=share", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-d86c44942bcf8c4cbfaafb7db8aae634-6539c27cb9460d4f-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "e9b237c2-c266-c1fe-f310-3fccd4b82ad8", + "x-ms-date": "Fri, 18 Dec 2020 22:30:50 GMT", + "x-ms-delete-snapshots": "include", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:30:49 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "e9b237c2-c266-c1fe-f310-3fccd4b82ad8", + "x-ms-request-id": "379d6d3b-d01a-0001-3e8d-d5550e000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T14:30:49.9625869-08:00", + "RandomSeed": "1521250716", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json new file mode 100644 index 000000000000..40be4eacf47e --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json @@ -0,0 +1,72 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-8dcf955d-e606-cdab-8542-9d9ed9b7727b?restype=share", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-3a2e57f70dd5b64e8dface174391768a-936bb22d7a79fe42-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "4b60f912-f028-8d7e-4978-4a2946cb92a5", + "x-ms-date": "Fri, 18 Dec 2020 22:31:12 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:31:12 GMT", + "ETag": "\u00220x8D8A3A4A0219507\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:31:12 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "4b60f912-f028-8d7e-4978-4a2946cb92a5", + "x-ms-request-id": "ab3606e5-401a-000f-0d8d-d5b905000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-8dcf955d-e606-cdab-8542-9d9ed9b7727b?restype=share", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-4b5cfbdfcca16c4a90d23f4ae7c4dbfe-ba82730e9a2ec840-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "47aa7280-b51c-f563-e1bf-9ee0298bbfcd", + "x-ms-date": "Fri, 18 Dec 2020 22:31:13 GMT", + "x-ms-delete-snapshots": "include", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:31:12 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "47aa7280-b51c-f563-e1bf-9ee0298bbfcd", + "x-ms-request-id": "ab3606eb-401a-000f-118d-d5b905000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T14:31:13.1148943-08:00", + "RandomSeed": "828792014", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json new file mode 100644 index 000000000000..dbfa77693953 --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/FileClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json @@ -0,0 +1,72 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-72adc935-b073-49ca-1438-863b1bec0d7c?restype=share", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-4952e28737411a4e9d28d2d46d4d098c-673584c6004b8a41-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "7349dfbe-af44-0bc6-3d78-3495395ce8bc", + "x-ms-date": "Fri, 18 Dec 2020 22:31:13 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:31:13 GMT", + "ETag": "\u00220x8D8A3A4A07DB0D8\u0022", + "Last-Modified": "Fri, 18 Dec 2020 22:31:13 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "7349dfbe-af44-0bc6-3d78-3495395ce8bc", + "x-ms-request-id": "5619ad71-101a-0035-4f8d-d5faa6000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-72adc935-b073-49ca-1438-863b1bec0d7c?restype=share", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-036c882f4ae8d94fa6d4839f7620ab50-35091626abbe2744-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "1c5ec07e-ec6f-6c5e-0733-dcc9b9b9d697", + "x-ms-date": "Fri, 18 Dec 2020 22:31:13 GMT", + "x-ms-delete-snapshots": "include", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:31:13 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "1c5ec07e-ec6f-6c5e-0733-dcc9b9b9d697", + "x-ms-request-id": "5619ad74-101a-0035-508d-d5faa6000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T14:31:13.5949100-08:00", + "RandomSeed": "664859990", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential.json b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential.json new file mode 100644 index 000000000000..36933d993b52 --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential.json @@ -0,0 +1,39 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasoboltest.file.core.windows.net/?restype=service\u0026comp=properties\u0026sv=2020-04-08\u0026ss=f\u0026srt=sco\u0026st=2020-12-18T22:14:10Z\u0026se=2020-12-19T00:14:10Z\u0026sp=rwdxlacuptf\u0026sig=Sanitized", + "RequestMethod": "GET", + "RequestHeaders": { + "traceparent": "00-154cd4ce0728e7419cb536defd10c584-9d5eb62a46eab542-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "cc78e121-1d8e-b523-680c-2099ca850dcb", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Type": "application/xml", + "Date": "Fri, 18 Dec 2020 23:14:10 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Transfer-Encoding": "chunked", + "Vary": "Origin", + "x-ms-client-request-id": "cc78e121-1d8e-b523-680c-2099ca850dcb", + "x-ms-request-id": "87ef42d9-701a-0061-1793-d5102c000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": "\uFEFF\u003C?xml version=\u00221.0\u0022 encoding=\u0022utf-8\u0022?\u003E\u003CStorageServiceProperties\u003E\u003CHourMetrics\u003E\u003CVersion\u003E1.0\u003C/Version\u003E\u003CEnabled\u003Efalse\u003C/Enabled\u003E\u003CRetentionPolicy\u003E\u003CEnabled\u003Etrue\u003C/Enabled\u003E\u003CDays\u003E1\u003C/Days\u003E\u003C/RetentionPolicy\u003E\u003C/HourMetrics\u003E\u003CMinuteMetrics\u003E\u003CVersion\u003E1.0\u003C/Version\u003E\u003CEnabled\u003Etrue\u003C/Enabled\u003E\u003CIncludeAPIs\u003Efalse\u003C/IncludeAPIs\u003E\u003CRetentionPolicy\u003E\u003CEnabled\u003Etrue\u003C/Enabled\u003E\u003CDays\u003E8\u003C/Days\u003E\u003C/RetentionPolicy\u003E\u003C/MinuteMetrics\u003E\u003CCors\u003E\u003CCorsRule\u003E\u003CAllowedMethods\u003EGET,PUT\u003C/AllowedMethods\u003E\u003CAllowedOrigins\u003Ewww.ab.com,www.bc.com\u003C/AllowedOrigins\u003E\u003CAllowedHeaders\u003Ex-ms-meta-xyz,x-ms-meta-foo,x-ms-meta-data*,x-ms-meta-target*\u003C/AllowedHeaders\u003E\u003CExposedHeaders\u003Ex-ms-meta-abc,x-ms-meta-bcd,x-ms-meta-data*,x-ms-meta-source*\u003C/ExposedHeaders\u003E\u003CMaxAgeInSeconds\u003E500\u003C/MaxAgeInSeconds\u003E\u003C/CorsRule\u003E\u003C/Cors\u003E\u003CProtocolSettings\u003E\u003CSMB\u003E\u003CMultichannel\u003E\u003CEnabled\u003Efalse\u003C/Enabled\u003E\u003C/Multichannel\u003E\u003C/SMB\u003E\u003C/ProtocolSettings\u003E\u003C/StorageServiceProperties\u003E" + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T15:14:10.3450997-08:00", + "RandomSeed": "320147323", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredentialAsync.json b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredentialAsync.json new file mode 100644 index 000000000000..a8f98e6b8b7f --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredentialAsync.json @@ -0,0 +1,39 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasoboltest.file.core.windows.net/?restype=service\u0026comp=properties\u0026sv=2020-04-08\u0026ss=f\u0026srt=sco\u0026st=2020-12-18T22:14:11Z\u0026se=2020-12-19T00:14:11Z\u0026sp=rwdxlacuptf\u0026sig=Sanitized", + "RequestMethod": "GET", + "RequestHeaders": { + "traceparent": "00-7c810092182978478483f8795a66613c-93bc09f116319041-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "96ee43ab-4ae1-3b9b-5222-25b3eab8301d", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Type": "application/xml", + "Date": "Fri, 18 Dec 2020 23:14:10 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Transfer-Encoding": "chunked", + "Vary": "Origin", + "x-ms-client-request-id": "96ee43ab-4ae1-3b9b-5222-25b3eab8301d", + "x-ms-request-id": "e10d1c4f-001a-0065-5193-d5e5ae000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": "\uFEFF\u003C?xml version=\u00221.0\u0022 encoding=\u0022utf-8\u0022?\u003E\u003CStorageServiceProperties\u003E\u003CHourMetrics\u003E\u003CVersion\u003E1.0\u003C/Version\u003E\u003CEnabled\u003Efalse\u003C/Enabled\u003E\u003CRetentionPolicy\u003E\u003CEnabled\u003Etrue\u003C/Enabled\u003E\u003CDays\u003E1\u003C/Days\u003E\u003C/RetentionPolicy\u003E\u003C/HourMetrics\u003E\u003CMinuteMetrics\u003E\u003CVersion\u003E1.0\u003C/Version\u003E\u003CEnabled\u003Etrue\u003C/Enabled\u003E\u003CIncludeAPIs\u003Efalse\u003C/IncludeAPIs\u003E\u003CRetentionPolicy\u003E\u003CEnabled\u003Etrue\u003C/Enabled\u003E\u003CDays\u003E8\u003C/Days\u003E\u003C/RetentionPolicy\u003E\u003C/MinuteMetrics\u003E\u003CCors\u003E\u003CCorsRule\u003E\u003CAllowedMethods\u003EGET,PUT\u003C/AllowedMethods\u003E\u003CAllowedOrigins\u003Ewww.ab.com,www.bc.com\u003C/AllowedOrigins\u003E\u003CAllowedHeaders\u003Ex-ms-meta-xyz,x-ms-meta-foo,x-ms-meta-data*,x-ms-meta-target*\u003C/AllowedHeaders\u003E\u003CExposedHeaders\u003Ex-ms-meta-abc,x-ms-meta-bcd,x-ms-meta-data*,x-ms-meta-source*\u003C/ExposedHeaders\u003E\u003CMaxAgeInSeconds\u003E500\u003C/MaxAgeInSeconds\u003E\u003C/CorsRule\u003E\u003C/Cors\u003E\u003CProtocolSettings\u003E\u003CSMB\u003E\u003CMultichannel\u003E\u003CEnabled\u003Efalse\u003C/Enabled\u003E\u003C/Multichannel\u003E\u003C/SMB\u003E\u003C/ProtocolSettings\u003E\u003C/StorageServiceProperties\u003E" + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T15:14:11.1831005-08:00", + "RandomSeed": "2078905596", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json new file mode 100644 index 000000000000..be7b1bde6d71 --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json @@ -0,0 +1,8 @@ +{ + "Entries": [], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T15:14:30.0279858-08:00", + "RandomSeed": "292574581", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json new file mode 100644 index 000000000000..dd78b7a61419 --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json @@ -0,0 +1,8 @@ +{ + "Entries": [], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T15:14:30.3559861-08:00", + "RandomSeed": "1946027112", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ShareClientTests/Ctor_AzureSasCredential.json b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ShareClientTests/Ctor_AzureSasCredential.json new file mode 100644 index 000000000000..1e577e0ced51 --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ShareClientTests/Ctor_AzureSasCredential.json @@ -0,0 +1,108 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-d71654d6-89d7-0fa5-34c0-47ec498e9729?restype=share", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-59b8f7c762bb2d40899bf1d9265db8cf-a171a6e18516fa4f-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "b3fe7a1c-058a-3c39-10d4-00ef73be6c1f", + "x-ms-date": "Fri, 18 Dec 2020 23:12:04 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 23:12:03 GMT", + "ETag": "\u00220x8D8A3AA556E7FE9\u0022", + "Last-Modified": "Fri, 18 Dec 2020 23:12:04 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "b3fe7a1c-058a-3c39-10d4-00ef73be6c1f", + "x-ms-request-id": "ba7ed651-001a-002a-2c93-d521b6000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-d71654d6-89d7-0fa5-34c0-47ec498e9729?restype=share\u0026sv=2020-04-08\u0026ss=f\u0026srt=sco\u0026st=2020-12-18T22:12:04Z\u0026se=2020-12-19T00:12:04Z\u0026sp=rwdxlacuptf\u0026sig=Sanitized", + "RequestMethod": "GET", + "RequestHeaders": { + "traceparent": "00-01550450b6547e41a005fd872df4792e-6a354f833478aa4c-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "cfd0d2f4-e48f-6c9e-4499-da7742a2e214", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 23:12:04 GMT", + "ETag": "\u00220x8D8A3AA556E7FE9\u0022", + "Last-Modified": "Fri, 18 Dec 2020 23:12:04 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Vary": "Origin", + "x-ms-access-tier": "TransactionOptimized", + "x-ms-access-tier-change-time": "Fri, 18 Dec 2020 23:12:04 GMT", + "x-ms-client-request-id": "cfd0d2f4-e48f-6c9e-4499-da7742a2e214", + "x-ms-has-immutability-policy": "false", + "x-ms-has-legal-hold": "false", + "x-ms-request-id": "a931855c-801a-0012-1c93-d560ef000000", + "x-ms-share-quota": "5120", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-d71654d6-89d7-0fa5-34c0-47ec498e9729?restype=share", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-1785ca7c799d8f479237c92f6e166d8c-ba1a0cd6c63b5841-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "a1fb66ac-9ded-7090-e05e-7252d260501f", + "x-ms-date": "Fri, 18 Dec 2020 23:12:04 GMT", + "x-ms-delete-snapshots": "include", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 23:12:03 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "a1fb66ac-9ded-7090-e05e-7252d260501f", + "x-ms-request-id": "ba7ed654-001a-002a-2d93-d521b6000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T15:12:04.7215696-08:00", + "RandomSeed": "1163979149", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ShareClientTests/Ctor_AzureSasCredentialAsync.json b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ShareClientTests/Ctor_AzureSasCredentialAsync.json new file mode 100644 index 000000000000..18db2b0b29c3 --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ShareClientTests/Ctor_AzureSasCredentialAsync.json @@ -0,0 +1,108 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-884879bb-cb66-5c72-83ec-cb4a398c5ad3?restype=share", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-7af35fab760cee458897b5ed9f521661-0a0eadc9b16c0142-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "85be63ed-21f5-9b41-3967-784c6dbe298e", + "x-ms-date": "Fri, 18 Dec 2020 23:12:04 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 23:12:04 GMT", + "ETag": "\u00220x8D8A3AA55B3ECD6\u0022", + "Last-Modified": "Fri, 18 Dec 2020 23:12:05 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "85be63ed-21f5-9b41-3967-784c6dbe298e", + "x-ms-request-id": "897ab0c8-701a-006a-1493-d50858000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-884879bb-cb66-5c72-83ec-cb4a398c5ad3?restype=share\u0026sv=2020-04-08\u0026ss=f\u0026srt=sco\u0026st=2020-12-18T22:12:05Z\u0026se=2020-12-19T00:12:05Z\u0026sp=rwdxlacuptf\u0026sig=Sanitized", + "RequestMethod": "GET", + "RequestHeaders": { + "traceparent": "00-6c2dd611eade664787c910e8192c86a9-daef88a554466e44-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "d65cb71f-d5cd-1bdd-8c1a-2c1e848ed65f", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 23:12:04 GMT", + "ETag": "\u00220x8D8A3AA55B3ECD6\u0022", + "Last-Modified": "Fri, 18 Dec 2020 23:12:05 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Vary": "Origin", + "x-ms-access-tier": "TransactionOptimized", + "x-ms-access-tier-change-time": "Fri, 18 Dec 2020 23:12:05 GMT", + "x-ms-client-request-id": "d65cb71f-d5cd-1bdd-8c1a-2c1e848ed65f", + "x-ms-has-immutability-policy": "false", + "x-ms-has-legal-hold": "false", + "x-ms-request-id": "08808f03-e01a-0020-1f93-d5383f000000", + "x-ms-share-quota": "5120", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-884879bb-cb66-5c72-83ec-cb4a398c5ad3?restype=share", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-7d01789dc1458e41b3de061ea9c9f77e-42d865079a678049-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "b52cfc41-5362-38c0-f684-18fd4e723910", + "x-ms-date": "Fri, 18 Dec 2020 23:12:05 GMT", + "x-ms-delete-snapshots": "include", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 23:12:04 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "b52cfc41-5362-38c0-f684-18fd4e723910", + "x-ms-request-id": "897ab0cc-701a-006a-1593-d50858000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T15:12:05.1248219-08:00", + "RandomSeed": "700378696", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ShareClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ShareClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json new file mode 100644 index 000000000000..2279cbd4d668 --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ShareClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json @@ -0,0 +1,72 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-02cfc5be-07d7-9184-35c9-84387485affa?restype=share", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-95e27a614d264640b293f766af6cbb2e-1bf9e5dd2d5bd24d-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "aa3b8b46-6148-ae14-6798-92310464267d", + "x-ms-date": "Fri, 18 Dec 2020 23:13:57 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 23:13:57 GMT", + "ETag": "\u00220x8D8A3AA992CB9C0\u0022", + "Last-Modified": "Fri, 18 Dec 2020 23:13:58 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "aa3b8b46-6148-ae14-6798-92310464267d", + "x-ms-request-id": "ff99afd1-901a-0060-4e93-d511d1000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-02cfc5be-07d7-9184-35c9-84387485affa?restype=share", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-ace788162a46e642b1597f1c7971c0ff-95ad2ae8389eb14a-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "e9f2360f-0449-adb1-b308-7f8640cb85b5", + "x-ms-date": "Fri, 18 Dec 2020 23:13:58 GMT", + "x-ms-delete-snapshots": "include", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 23:13:57 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "e9f2360f-0449-adb1-b308-7f8640cb85b5", + "x-ms-request-id": "ff99afd4-901a-0060-4f93-d511d1000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T15:13:58.4361084-08:00", + "RandomSeed": "1726585401", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ShareClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ShareClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json new file mode 100644 index 000000000000..444bec76795c --- /dev/null +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/SessionRecords/ShareClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json @@ -0,0 +1,72 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-b154f5bf-b84e-7b24-f3fd-71a301fa9087?restype=share", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-0cc4b179ab948c4e87f11249948fc7d7-2f6d56abf7ade04a-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "2d2c9d67-4706-ec2f-6f50-5ed001d707cc", + "x-ms-date": "Fri, 18 Dec 2020 23:13:58 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 23:13:57 GMT", + "ETag": "\u00220x8D8A3AA99636C45\u0022", + "Last-Modified": "Fri, 18 Dec 2020 23:13:58 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "2d2c9d67-4706-ec2f-6f50-5ed001d707cc", + "x-ms-request-id": "18b4ccba-d01a-000a-6893-d54d7a000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.file.core.windows.net/test-share-b154f5bf-b84e-7b24-f3fd-71a301fa9087?restype=share", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-a3e6ff2f88789a4faba16c43d30a3ac7-621e5f2351a73049-00", + "User-Agent": [ + "azsdk-net-Storage.Files.Shares/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "643bc273-63ce-b780-f6a8-fc1dc03be802", + "x-ms-date": "Fri, 18 Dec 2020 23:13:58 GMT", + "x-ms-delete-snapshots": "include", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2020-04-08" + }, + "RequestBody": null, + "StatusCode": 202, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 23:13:57 GMT", + "Server": [ + "Windows-Azure-File/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-client-request-id": "643bc273-63ce-b780-f6a8-fc1dc03be802", + "x-ms-request-id": "18b4ccbd-d01a-000a-6993-d54d7a000000", + "x-ms-version": "2020-04-08" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T15:13:58.6821447-08:00", + "RandomSeed": "1757016064", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Files.Shares/tests/ShareClientTests.cs b/sdk/storage/Azure.Storage.Files.Shares/tests/ShareClientTests.cs index 66933273c3ab..6213505f7647 100644 --- a/sdk/storage/Azure.Storage.Files.Shares/tests/ShareClientTests.cs +++ b/sdk/storage/Azure.Storage.Files.Shares/tests/ShareClientTests.cs @@ -121,6 +121,37 @@ async Task GetFileClient(ShareClient share) } } + [Test] + public async Task Ctor_AzureSasCredential() + { + // Arrange + await using DisposingShare test = await GetTestShareAsync(); + string sas = GetNewAccountSasCredentials(resourceTypes: AccountSasResourceTypes.All, permissions: AccountSasPermissions.All).ToString(); + Uri uri = test.Share.Uri; + + // Act + var sasClient = InstrumentClient(new ShareClient(uri, new AzureSasCredential(sas), GetOptions())); + ShareProperties properties = await sasClient.GetPropertiesAsync(); + + // Assert + Assert.IsNotNull(properties); + } + + [Test] + public async Task Ctor_AzureSasCredential_VerifyNoSasInUri() + { + // Arrange + await using DisposingShare test = await GetTestShareAsync(); + string sas = GetNewAccountSasCredentials(resourceTypes: AccountSasResourceTypes.All, permissions: AccountSasPermissions.All).ToString(); + Uri uri = test.Share.Uri; + uri = new Uri(uri.ToString() + "?" + sas); + + // Act + TestHelper.AssertExpectedException( + () => new ShareClient(uri, new AzureSasCredential(sas)), + e => e.Message.Contains($"You cannot use {nameof(AzureSasCredential)} when the resource URI also contains a Shared Access Signature")); + } + [Test] public void WithSnapshot() { diff --git a/sdk/storage/Azure.Storage.Queues/CHANGELOG.md b/sdk/storage/Azure.Storage.Queues/CHANGELOG.md index c6c7ee1bcada..3ca4b281d67f 100644 --- a/sdk/storage/Azure.Storage.Queues/CHANGELOG.md +++ b/sdk/storage/Azure.Storage.Queues/CHANGELOG.md @@ -1,7 +1,7 @@ # Release History ## 12.6.0-beta.2 (Unreleased) - +- Added support for AzureSasCredential. That allows SAS rotation for long living clients. ## 12.6.0-beta.1 (2020-12-07) - Fixed bug where QueueServiceClient.GetQueueClient() and QueueClient.WithClientSideEncryptionOptions() created clients that could not generate a SAS from clients that could generate a SAS. diff --git a/sdk/storage/Azure.Storage.Queues/api/Azure.Storage.Queues.netstandard2.0.cs b/sdk/storage/Azure.Storage.Queues/api/Azure.Storage.Queues.netstandard2.0.cs index 157cdb18ea57..31652bec23fc 100644 --- a/sdk/storage/Azure.Storage.Queues/api/Azure.Storage.Queues.netstandard2.0.cs +++ b/sdk/storage/Azure.Storage.Queues/api/Azure.Storage.Queues.netstandard2.0.cs @@ -5,6 +5,7 @@ public partial class QueueClient protected QueueClient() { } public QueueClient(string connectionString, string queueName) { } public QueueClient(string connectionString, string queueName, Azure.Storage.Queues.QueueClientOptions options) { } + public QueueClient(System.Uri queueUri, Azure.AzureSasCredential credential, Azure.Storage.Queues.QueueClientOptions options = null) { } public QueueClient(System.Uri queueUri, Azure.Core.TokenCredential credential, Azure.Storage.Queues.QueueClientOptions options = null) { } public QueueClient(System.Uri queueUri, Azure.Storage.Queues.QueueClientOptions options = null) { } public QueueClient(System.Uri queueUri, Azure.Storage.StorageSharedKeyCredential credential, Azure.Storage.Queues.QueueClientOptions options = null) { } @@ -90,6 +91,7 @@ public partial class QueueServiceClient protected QueueServiceClient() { } public QueueServiceClient(string connectionString) { } public QueueServiceClient(string connectionString, Azure.Storage.Queues.QueueClientOptions options) { } + public QueueServiceClient(System.Uri serviceUri, Azure.AzureSasCredential credential, Azure.Storage.Queues.QueueClientOptions options = null) { } public QueueServiceClient(System.Uri serviceUri, Azure.Core.TokenCredential credential, Azure.Storage.Queues.QueueClientOptions options = null) { } public QueueServiceClient(System.Uri serviceUri, Azure.Storage.Queues.QueueClientOptions options = null) { } public QueueServiceClient(System.Uri serviceUri, Azure.Storage.StorageSharedKeyCredential credential, Azure.Storage.Queues.QueueClientOptions options = null) { } diff --git a/sdk/storage/Azure.Storage.Queues/src/Azure.Storage.Queues.csproj b/sdk/storage/Azure.Storage.Queues/src/Azure.Storage.Queues.csproj index 6c67e8921a17..1881fc3826f1 100644 --- a/sdk/storage/Azure.Storage.Queues/src/Azure.Storage.Queues.csproj +++ b/sdk/storage/Azure.Storage.Queues/src/Azure.Storage.Queues.csproj @@ -24,7 +24,9 @@ + + diff --git a/sdk/storage/Azure.Storage.Queues/src/QueueClient.cs b/sdk/storage/Azure.Storage.Queues/src/QueueClient.cs index 631e16a1f931..6af22ef91560 100644 --- a/sdk/storage/Azure.Storage.Queues/src/QueueClient.cs +++ b/sdk/storage/Azure.Storage.Queues/src/QueueClient.cs @@ -265,6 +265,32 @@ public QueueClient(Uri queueUri, StorageSharedKeyCredential credential, QueueCli { } + /// + /// Initializes a new instance of the + /// class. + /// + /// + /// A referencing the queue that includes the + /// name of the account, and the name of the queue. + /// This is likely to be similar to "https://{account_name}.queue.core.windows.net/{queue_name}". + /// Must not contain shared access signature, which should be passed in the second parameter. + /// + /// + /// The shared access signature credential used to sign requests. + /// + /// + /// Optional client options that define the transport pipeline + /// policies for authentication, retries, etc., that are applied to + /// every request. + /// + /// + /// This constructor should only be used when shared access signature needs to be updated during lifespan of this client. + /// + public QueueClient(Uri queueUri, AzureSasCredential credential, QueueClientOptions options = default) + : this(queueUri, credential.AsPolicy(queueUri), options, null) + { + } + /// /// Initializes a new instance of the /// class. @@ -314,6 +340,7 @@ internal QueueClient( QueueClientOptions options, StorageSharedKeyCredential storageSharedKeyCredential) { + Argument.AssertNotNull(queueUri, nameof(queueUri)); _uri = queueUri; _messagesUri = queueUri.AppendToPath(Constants.Queue.MessagesUri); options ??= new QueueClientOptions(); diff --git a/sdk/storage/Azure.Storage.Queues/src/QueueServiceClient.cs b/sdk/storage/Azure.Storage.Queues/src/QueueServiceClient.cs index 931078b9042c..7ff3d871336c 100644 --- a/sdk/storage/Azure.Storage.Queues/src/QueueServiceClient.cs +++ b/sdk/storage/Azure.Storage.Queues/src/QueueServiceClient.cs @@ -209,6 +209,31 @@ public QueueServiceClient(Uri serviceUri, StorageSharedKeyCredential credential, { } + /// + /// Initializes a new instance of the + /// class. + /// + /// + /// A referencing the queue service. + /// This is likely to be similar to "https://{account_name}.queue.core.windows.net". + /// Must not contain shared access signature, which should be passed in the second parameter. + /// + /// + /// The shared access signature credential used to sign requests. + /// + /// + /// Optional client options that define the transport pipeline + /// policies for authentication, retries, etc., that are applied to + /// every request. + /// + /// + /// This constructor should only be used when shared access signature needs to be updated during lifespan of this client. + /// + public QueueServiceClient(Uri serviceUri, AzureSasCredential credential, QueueClientOptions options = default) + : this(serviceUri, credential.AsPolicy(serviceUri), options, null) + { + } + /// /// Initializes a new instance of the /// class. @@ -256,6 +281,7 @@ internal QueueServiceClient( QueueClientOptions options, StorageSharedKeyCredential storageSharedKeyCredential) { + Argument.AssertNotNull(serviceUri, nameof(serviceUri)); _uri = serviceUri; options ??= new QueueClientOptions(); _pipeline = options.Build(authentication); diff --git a/sdk/storage/Azure.Storage.Queues/tests/QueueClientTests.cs b/sdk/storage/Azure.Storage.Queues/tests/QueueClientTests.cs index fc7155ab8c5a..353c6555f7fb 100644 --- a/sdk/storage/Azure.Storage.Queues/tests/QueueClientTests.cs +++ b/sdk/storage/Azure.Storage.Queues/tests/QueueClientTests.cs @@ -131,6 +131,37 @@ public void Ctor_TokenCredential_Http() new ArgumentException("Cannot use TokenCredential without HTTPS.")); } + [Test] + public async Task Ctor_AzureSasCredential() + { + // Arrange + string sas = GetNewAccountSasCredentials().ToString(); + await using DisposingQueue test = await GetTestQueueAsync(); + Uri uri = test.Queue.Uri; + + // Act + var sasClient = InstrumentClient(new QueueClient(uri, new AzureSasCredential(sas), GetOptions())); + QueueProperties properties = await sasClient.GetPropertiesAsync(); + + // Assert + Assert.IsNotNull(properties); + } + + [Test] + public async Task Ctor_AzureSasCredential_VerifyNoSasInUri() + { + // Arrange + string sas = GetNewAccountSasCredentials().ToString(); + await using DisposingQueue test = await GetTestQueueAsync(); + Uri uri = test.Queue.Uri; + uri = new Uri(uri.ToString() + "?" + sas); + + // Act + TestHelper.AssertExpectedException( + () => new QueueClient(uri, new AzureSasCredential(sas)), + e => e.Message.Contains($"You cannot use {nameof(AzureSasCredential)} when the resource URI also contains a Shared Access Signature")); + } + [Test] public async Task CreateAsync_WithSharedKey() { diff --git a/sdk/storage/Azure.Storage.Queues/tests/QueueTestBase.cs b/sdk/storage/Azure.Storage.Queues/tests/QueueTestBase.cs index 455f3e5bd498..29dfc4cde155 100644 --- a/sdk/storage/Azure.Storage.Queues/tests/QueueTestBase.cs +++ b/sdk/storage/Azure.Storage.Queues/tests/QueueTestBase.cs @@ -166,13 +166,15 @@ public StorageSharedKeyCredential GetNewSharedKeyCredentials() TestConfigDefault.AccountName, TestConfigDefault.AccountKey); - public SasQueryParameters GetNewAccountSasCredentials(StorageSharedKeyCredential sharedKeyCredentials = default) + public SasQueryParameters GetNewAccountSasCredentials( + StorageSharedKeyCredential sharedKeyCredentials = default, + AccountSasResourceTypes resourceTypes = AccountSasResourceTypes.Container) { var builder = new AccountSasBuilder { Protocol = SasProtocol.None, Services = AccountSasServices.Queues, - ResourceTypes = AccountSasResourceTypes.Container, + ResourceTypes = resourceTypes, StartsOn = Recording.UtcNow.AddHours(-1), ExpiresOn = Recording.UtcNow.AddHours(+1), IPRange = new SasIPRange(IPAddress.None, IPAddress.None) @@ -185,7 +187,7 @@ public SasQueryParameters GetNewAccountSasCredentials(StorageSharedKeyCredential AccountSasPermissions.Add | AccountSasPermissions.Delete | AccountSasPermissions.List); - return builder.ToSasQueryParameters(sharedKeyCredentials); + return builder.ToSasQueryParameters(sharedKeyCredentials ?? GetNewSharedKeyCredentials()); } public SasQueryParameters GetNewQueueServiceSasCredentials(string queueName, StorageSharedKeyCredential sharedKeyCredentials = default) diff --git a/sdk/storage/Azure.Storage.Queues/tests/ServiceClientTests.cs b/sdk/storage/Azure.Storage.Queues/tests/ServiceClientTests.cs index 2060a624e868..6753188156a9 100644 --- a/sdk/storage/Azure.Storage.Queues/tests/ServiceClientTests.cs +++ b/sdk/storage/Azure.Storage.Queues/tests/ServiceClientTests.cs @@ -74,6 +74,36 @@ public void Ctor_Uri() Assert.AreEqual(accountName, builder.AccountName); } + [Test] + public async Task Ctor_AzureSasCredential() + { + // Arrange + string sas = GetNewAccountSasCredentials(resourceTypes: AccountSasResourceTypes.Service).ToString(); + await using DisposingQueue test = await GetTestQueueAsync(); + Uri uri = GetServiceClient_SharedKey().Uri; + + // Act + var sasClient = InstrumentClient(new QueueServiceClient(uri, new AzureSasCredential(sas), GetOptions())); + QueueServiceProperties properties = await sasClient.GetPropertiesAsync(); + + // Assert + Assert.IsNotNull(properties); + } + + [Test] + public void Ctor_AzureSasCredential_VerifyNoSasInUri() + { + // Arrange + string sas = GetNewAccountSasCredentials().ToString(); + Uri uri = GetServiceClient_SharedKey().Uri; + uri = new Uri(uri.ToString() + "?" + sas); + + // Act + TestHelper.AssertExpectedException( + () => new QueueClient(uri, new AzureSasCredential(sas)), + e => e.Message.Contains($"You cannot use {nameof(AzureSasCredential)} when the resource URI also contains a Shared Access Signature")); + } + [Test] public async Task GetQueuesAsync() { diff --git a/sdk/storage/Azure.Storage.Queues/tests/SessionRecords/QueueClientTests/Ctor_AzureSasCredential.json b/sdk/storage/Azure.Storage.Queues/tests/SessionRecords/QueueClientTests/Ctor_AzureSasCredential.json new file mode 100644 index 000000000000..14e65e3ec708 --- /dev/null +++ b/sdk/storage/Azure.Storage.Queues/tests/SessionRecords/QueueClientTests/Ctor_AzureSasCredential.json @@ -0,0 +1,97 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasoboltest.queue.core.windows.net/test-queue-a369edf7-e653-59df-83b3-6a296e927eed", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-ed8aa788f21d544985e3825dd6f0b159-8d7cd70eb156c346-00", + "User-Agent": [ + "azsdk-net-Storage.Queues/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "8c7ab3ad-6a2f-1590-3d10-7abcc6b108ed", + "x-ms-date": "Fri, 18 Dec 2020 22:51:26 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2018-11-09" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:51:26 GMT", + "Server": [ + "Windows-Azure-Queue/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": "d12558f8-2003-0050-3990-d54bfb000000", + "x-ms-version": "2018-11-09" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.queue.core.windows.net/test-queue-a369edf7-e653-59df-83b3-6a296e927eed?comp=metadata\u0026sv=2020-04-08\u0026ss=q\u0026srt=c\u0026st=2020-12-18T21:51:25Z\u0026se=2020-12-18T23:51:25Z\u0026sp=rwdlaup\u0026sig=Sanitized", + "RequestMethod": "GET", + "RequestHeaders": { + "traceparent": "00-33e189a26ca02f47a94800dfbe106f23-d83145121fc50d4f-00", + "User-Agent": [ + "azsdk-net-Storage.Queues/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "ba7b8a4d-f218-45bd-1bee-b98df9edbefc", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2018-11-09" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:51:26 GMT", + "Server": [ + "Windows-Azure-Queue/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Vary": "Origin", + "x-ms-approximate-messages-count": "0", + "x-ms-request-id": "a3ebff78-3003-006d-2490-d5fedd000000", + "x-ms-version": "2018-11-09" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.queue.core.windows.net/test-queue-a369edf7-e653-59df-83b3-6a296e927eed", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-0fa93c7bb7bffd4caf475cd2d2286fb6-25ccea49aef0dd41-00", + "User-Agent": [ + "azsdk-net-Storage.Queues/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "3b6eb630-4d36-48d4-0b09-cedf42058a56", + "x-ms-date": "Fri, 18 Dec 2020 22:51:26 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2018-11-09" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:51:26 GMT", + "Server": [ + "Windows-Azure-Queue/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": "d1255911-2003-0050-4b90-d54bfb000000", + "x-ms-version": "2018-11-09" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T14:51:25.8048823-08:00", + "RandomSeed": "964357845", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Queues/tests/SessionRecords/QueueClientTests/Ctor_AzureSasCredentialAsync.json b/sdk/storage/Azure.Storage.Queues/tests/SessionRecords/QueueClientTests/Ctor_AzureSasCredentialAsync.json new file mode 100644 index 000000000000..f9f439cdfd5b --- /dev/null +++ b/sdk/storage/Azure.Storage.Queues/tests/SessionRecords/QueueClientTests/Ctor_AzureSasCredentialAsync.json @@ -0,0 +1,97 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasoboltest.queue.core.windows.net/test-queue-aadd9177-546b-f0cc-df0c-e3f2f21e41b7", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-2deecb1eb75bb94493c6440d855defb1-b0d3c635bf9be34f-00", + "User-Agent": [ + "azsdk-net-Storage.Queues/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "238d6c0c-02c0-a212-bde1-8ecf76f4acc0", + "x-ms-date": "Fri, 18 Dec 2020 22:51:27 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2018-11-09" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:51:26 GMT", + "Server": [ + "Windows-Azure-Queue/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": "c6ff53c2-c003-001e-7b90-d58e1e000000", + "x-ms-version": "2018-11-09" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.queue.core.windows.net/test-queue-aadd9177-546b-f0cc-df0c-e3f2f21e41b7?comp=metadata\u0026sv=2020-04-08\u0026ss=q\u0026srt=c\u0026st=2020-12-18T21:51:27Z\u0026se=2020-12-18T23:51:27Z\u0026sp=rwdlaup\u0026sig=Sanitized", + "RequestMethod": "GET", + "RequestHeaders": { + "traceparent": "00-14f5586ea06d18418eba853dbf7ad7cc-d94798f043b0f144-00", + "User-Agent": [ + "azsdk-net-Storage.Queues/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "85e5c79d-1e90-27f7-7512-588071cd3182", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2018-11-09" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:51:26 GMT", + "Server": [ + "Windows-Azure-Queue/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Vary": "Origin", + "x-ms-approximate-messages-count": "0", + "x-ms-request-id": "154c951a-0003-0003-6890-d557f4000000", + "x-ms-version": "2018-11-09" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.queue.core.windows.net/test-queue-aadd9177-546b-f0cc-df0c-e3f2f21e41b7", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-ccb8b4dc8acd0c44ac7b2b2fed37a4d2-1f3b7704506f324a-00", + "User-Agent": [ + "azsdk-net-Storage.Queues/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "ae320352-260f-982f-e86e-cec8a9100627", + "x-ms-date": "Fri, 18 Dec 2020 22:51:27 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2018-11-09" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:51:26 GMT", + "Server": [ + "Windows-Azure-Queue/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": "c6ff5407-c003-001e-3e90-d58e1e000000", + "x-ms-version": "2018-11-09" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T14:51:27.0988809-08:00", + "RandomSeed": "1570953749", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Queues/tests/SessionRecords/QueueClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json b/sdk/storage/Azure.Storage.Queues/tests/SessionRecords/QueueClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json new file mode 100644 index 000000000000..d932ecf1dda6 --- /dev/null +++ b/sdk/storage/Azure.Storage.Queues/tests/SessionRecords/QueueClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json @@ -0,0 +1,67 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasoboltest.queue.core.windows.net/test-queue-44bc7ac2-2309-db39-394a-8bd7e6c2afee", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-3006c68e504fc349b6e678069a7feaa1-5c5cbc24ca8ca741-00", + "User-Agent": [ + "azsdk-net-Storage.Queues/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "038232a7-b956-36a4-afce-d95c1627a4d4", + "x-ms-date": "Fri, 18 Dec 2020 22:51:47 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2018-11-09" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:51:46 GMT", + "Server": [ + "Windows-Azure-Queue/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": "63333199-8003-005d-5e90-d5a4f7000000", + "x-ms-version": "2018-11-09" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.queue.core.windows.net/test-queue-44bc7ac2-2309-db39-394a-8bd7e6c2afee", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-a6df8874197fc44a9d5b92292639ea29-2498cb3499eb404a-00", + "User-Agent": [ + "azsdk-net-Storage.Queues/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "b330317f-ab3f-c597-264a-8042c65c9681", + "x-ms-date": "Fri, 18 Dec 2020 22:51:47 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2018-11-09" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:51:46 GMT", + "Server": [ + "Windows-Azure-Queue/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": "633331b4-8003-005d-7590-d5a4f7000000", + "x-ms-version": "2018-11-09" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T14:51:46.6866969-08:00", + "RandomSeed": "166425288", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Queues/tests/SessionRecords/QueueClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json b/sdk/storage/Azure.Storage.Queues/tests/SessionRecords/QueueClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json new file mode 100644 index 000000000000..28e42b696b80 --- /dev/null +++ b/sdk/storage/Azure.Storage.Queues/tests/SessionRecords/QueueClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json @@ -0,0 +1,67 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasoboltest.queue.core.windows.net/test-queue-d210f217-fca0-1b07-a737-12689c974b9f", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-c41350da968a8c4ebcf5dbaf071bc77c-7035d2be582c5c4d-00", + "User-Agent": [ + "azsdk-net-Storage.Queues/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "bd9ca270-447b-c438-1431-3e99c114d531", + "x-ms-date": "Fri, 18 Dec 2020 22:51:47 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2018-11-09" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:51:47 GMT", + "Server": [ + "Windows-Azure-Queue/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": "2d4199f5-a003-0063-4c90-d512d6000000", + "x-ms-version": "2018-11-09" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.queue.core.windows.net/test-queue-d210f217-fca0-1b07-a737-12689c974b9f", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-6121e3506e89da45aeabadb553f9768c-c141238a98f0184d-00", + "User-Agent": [ + "azsdk-net-Storage.Queues/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "f9f83521-8efa-0b23-c1cb-20feb740f092", + "x-ms-date": "Fri, 18 Dec 2020 22:51:47 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2018-11-09" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 22:51:47 GMT", + "Server": [ + "Windows-Azure-Queue/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": "2d4199fa-a003-0063-4f90-d512d6000000", + "x-ms-version": "2018-11-09" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T14:51:47.5587318-08:00", + "RandomSeed": "548227842", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Queues/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential.json b/sdk/storage/Azure.Storage.Queues/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential.json new file mode 100644 index 000000000000..b59687e69ce1 --- /dev/null +++ b/sdk/storage/Azure.Storage.Queues/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential.json @@ -0,0 +1,97 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasoboltest.queue.core.windows.net/test-queue-f3011465-50cf-c19d-4443-c9049be29e01", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-f9bc736cb8ccaa46a234d6378357b9fc-8ff5d49a6c01da4a-00", + "User-Agent": [ + "azsdk-net-Storage.Queues/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "0b55a21f-be63-7825-0ad1-5cbe8d8a1562", + "x-ms-date": "Fri, 18 Dec 2020 23:04:41 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2018-11-09" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 23:04:40 GMT", + "Server": [ + "Windows-Azure-Queue/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": "ead5c815-2003-001f-5992-d58fe3000000", + "x-ms-version": "2018-11-09" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.queue.core.windows.net/?restype=service\u0026comp=properties\u0026sv=2020-04-08\u0026ss=q\u0026srt=s\u0026st=2020-12-18T22:04:41Z\u0026se=2020-12-19T00:04:41Z\u0026sp=rwdlaup\u0026sig=Sanitized", + "RequestMethod": "GET", + "RequestHeaders": { + "traceparent": "00-25406a2ff0d7344e84c8f287c38a78be-dc57a17641d8e349-00", + "User-Agent": [ + "azsdk-net-Storage.Queues/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "f8e53794-928d-969e-9aba-2e2e8c455aa1", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2018-11-09" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Type": "application/xml", + "Date": "Fri, 18 Dec 2020 23:04:41 GMT", + "Server": [ + "Windows-Azure-Queue/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Transfer-Encoding": "chunked", + "Vary": "Origin", + "x-ms-request-id": "776b60ff-f003-001d-6992-d58d19000000", + "x-ms-version": "2018-11-09" + }, + "ResponseBody": "\uFEFF\u003C?xml version=\u00221.0\u0022 encoding=\u0022utf-8\u0022?\u003E\u003CStorageServiceProperties\u003E\u003CLogging\u003E\u003CVersion\u003E1.0\u003C/Version\u003E\u003CRead\u003Etrue\u003C/Read\u003E\u003CWrite\u003Etrue\u003C/Write\u003E\u003CDelete\u003Efalse\u003C/Delete\u003E\u003CRetentionPolicy\u003E\u003CEnabled\u003Etrue\u003C/Enabled\u003E\u003CDays\u003E5\u003C/Days\u003E\u003C/RetentionPolicy\u003E\u003C/Logging\u003E\u003CHourMetrics\u003E\u003CVersion\u003E1.0\u003C/Version\u003E\u003CEnabled\u003Etrue\u003C/Enabled\u003E\u003CIncludeAPIs\u003Efalse\u003C/IncludeAPIs\u003E\u003CRetentionPolicy\u003E\u003CEnabled\u003Etrue\u003C/Enabled\u003E\u003CDays\u003E6\u003C/Days\u003E\u003C/RetentionPolicy\u003E\u003C/HourMetrics\u003E\u003CMinuteMetrics\u003E\u003CVersion\u003E1.0\u003C/Version\u003E\u003CEnabled\u003Etrue\u003C/Enabled\u003E\u003CIncludeAPIs\u003Efalse\u003C/IncludeAPIs\u003E\u003CRetentionPolicy\u003E\u003CEnabled\u003Etrue\u003C/Enabled\u003E\u003CDays\u003E6\u003C/Days\u003E\u003C/RetentionPolicy\u003E\u003C/MinuteMetrics\u003E\u003CCors\u003E\u003CCorsRule\u003E\u003CAllowedMethods\u003EGET,PUT\u003C/AllowedMethods\u003E\u003CAllowedOrigins\u003Ewww.ab.com,www.bc.com\u003C/AllowedOrigins\u003E\u003CAllowedHeaders\u003Ex-ms-meta-xyz,x-ms-meta-foo,x-ms-meta-data*,x-ms-meta-target*\u003C/AllowedHeaders\u003E\u003CExposedHeaders\u003Ex-ms-meta-abc,x-ms-meta-bcd,x-ms-meta-data*,x-ms-meta-source*\u003C/ExposedHeaders\u003E\u003CMaxAgeInSeconds\u003E500\u003C/MaxAgeInSeconds\u003E\u003C/CorsRule\u003E\u003C/Cors\u003E\u003C/StorageServiceProperties\u003E" + }, + { + "RequestUri": "https://kasoboltest.queue.core.windows.net/test-queue-f3011465-50cf-c19d-4443-c9049be29e01", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-3ec314a8609b954fa1bbf8e44cac90c0-6244ce81efe2b443-00", + "User-Agent": [ + "azsdk-net-Storage.Queues/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "562a8a03-1ca5-12d5-b847-f61ccea4f0ca", + "x-ms-date": "Fri, 18 Dec 2020 23:04:42 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2018-11-09" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 23:04:41 GMT", + "Server": [ + "Windows-Azure-Queue/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": "ead5c84b-2003-001f-0c92-d58fe3000000", + "x-ms-version": "2018-11-09" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T15:04:41.1855740-08:00", + "RandomSeed": "1808486870", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Queues/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredentialAsync.json b/sdk/storage/Azure.Storage.Queues/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredentialAsync.json new file mode 100644 index 000000000000..96d1c9e3a3c7 --- /dev/null +++ b/sdk/storage/Azure.Storage.Queues/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredentialAsync.json @@ -0,0 +1,97 @@ +{ + "Entries": [ + { + "RequestUri": "https://kasoboltest.queue.core.windows.net/test-queue-57ed95db-aa71-9839-62ae-d0be06b6c454", + "RequestMethod": "PUT", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-f8b6b77e003a0b4abcb60be3dd741748-0c2bb216c1d00a40-00", + "User-Agent": [ + "azsdk-net-Storage.Queues/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "389f4d38-b228-babe-3b07-16343959660e", + "x-ms-date": "Fri, 18 Dec 2020 23:04:42 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2018-11-09" + }, + "RequestBody": null, + "StatusCode": 201, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 23:04:41 GMT", + "Server": [ + "Windows-Azure-Queue/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": "86756f58-5003-0054-7292-d5be79000000", + "x-ms-version": "2018-11-09" + }, + "ResponseBody": [] + }, + { + "RequestUri": "https://kasoboltest.queue.core.windows.net/?restype=service\u0026comp=properties\u0026sv=2020-04-08\u0026ss=q\u0026srt=s\u0026st=2020-12-18T22:04:42Z\u0026se=2020-12-19T00:04:42Z\u0026sp=rwdlaup\u0026sig=Sanitized", + "RequestMethod": "GET", + "RequestHeaders": { + "traceparent": "00-cbf5aa5aea141048b41ea4f26d47d7e6-29cad92ab0c94f45-00", + "User-Agent": [ + "azsdk-net-Storage.Queues/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "b986d753-8c16-412b-4798-6348096232d9", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2018-11-09" + }, + "RequestBody": null, + "StatusCode": 200, + "ResponseHeaders": { + "Cache-Control": "no-cache", + "Content-Type": "application/xml", + "Date": "Fri, 18 Dec 2020 23:04:41 GMT", + "Server": [ + "Windows-Azure-Queue/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "Transfer-Encoding": "chunked", + "Vary": "Origin", + "x-ms-request-id": "f1ba5e4a-2003-003d-7792-d5e1d5000000", + "x-ms-version": "2018-11-09" + }, + "ResponseBody": "\uFEFF\u003C?xml version=\u00221.0\u0022 encoding=\u0022utf-8\u0022?\u003E\u003CStorageServiceProperties\u003E\u003CLogging\u003E\u003CVersion\u003E1.0\u003C/Version\u003E\u003CRead\u003Etrue\u003C/Read\u003E\u003CWrite\u003Etrue\u003C/Write\u003E\u003CDelete\u003Efalse\u003C/Delete\u003E\u003CRetentionPolicy\u003E\u003CEnabled\u003Etrue\u003C/Enabled\u003E\u003CDays\u003E5\u003C/Days\u003E\u003C/RetentionPolicy\u003E\u003C/Logging\u003E\u003CHourMetrics\u003E\u003CVersion\u003E1.0\u003C/Version\u003E\u003CEnabled\u003Etrue\u003C/Enabled\u003E\u003CIncludeAPIs\u003Efalse\u003C/IncludeAPIs\u003E\u003CRetentionPolicy\u003E\u003CEnabled\u003Etrue\u003C/Enabled\u003E\u003CDays\u003E6\u003C/Days\u003E\u003C/RetentionPolicy\u003E\u003C/HourMetrics\u003E\u003CMinuteMetrics\u003E\u003CVersion\u003E1.0\u003C/Version\u003E\u003CEnabled\u003Etrue\u003C/Enabled\u003E\u003CIncludeAPIs\u003Efalse\u003C/IncludeAPIs\u003E\u003CRetentionPolicy\u003E\u003CEnabled\u003Etrue\u003C/Enabled\u003E\u003CDays\u003E6\u003C/Days\u003E\u003C/RetentionPolicy\u003E\u003C/MinuteMetrics\u003E\u003CCors\u003E\u003CCorsRule\u003E\u003CAllowedMethods\u003EGET,PUT\u003C/AllowedMethods\u003E\u003CAllowedOrigins\u003Ewww.ab.com,www.bc.com\u003C/AllowedOrigins\u003E\u003CAllowedHeaders\u003Ex-ms-meta-xyz,x-ms-meta-foo,x-ms-meta-data*,x-ms-meta-target*\u003C/AllowedHeaders\u003E\u003CExposedHeaders\u003Ex-ms-meta-abc,x-ms-meta-bcd,x-ms-meta-data*,x-ms-meta-source*\u003C/ExposedHeaders\u003E\u003CMaxAgeInSeconds\u003E500\u003C/MaxAgeInSeconds\u003E\u003C/CorsRule\u003E\u003C/Cors\u003E\u003C/StorageServiceProperties\u003E" + }, + { + "RequestUri": "https://kasoboltest.queue.core.windows.net/test-queue-57ed95db-aa71-9839-62ae-d0be06b6c454", + "RequestMethod": "DELETE", + "RequestHeaders": { + "Authorization": "Sanitized", + "traceparent": "00-9ff45aa6d4e07a40ad2c0e22102d5b4c-aaec184007ab7946-00", + "User-Agent": [ + "azsdk-net-Storage.Queues/12.6.0-alpha.20201218.1", + "(.NET Framework 4.8.4250.0; Microsoft Windows 10.0.19042 )" + ], + "x-ms-client-request-id": "62e0ef2d-add2-eff7-00c4-58c127dbb29a", + "x-ms-date": "Fri, 18 Dec 2020 23:04:42 GMT", + "x-ms-return-client-request-id": "true", + "x-ms-version": "2018-11-09" + }, + "RequestBody": null, + "StatusCode": 204, + "ResponseHeaders": { + "Content-Length": "0", + "Date": "Fri, 18 Dec 2020 23:04:41 GMT", + "Server": [ + "Windows-Azure-Queue/1.0", + "Microsoft-HTTPAPI/2.0" + ], + "x-ms-request-id": "86756f7a-5003-0054-1292-d5be79000000", + "x-ms-version": "2018-11-09" + }, + "ResponseBody": [] + } + ], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T15:04:42.4025705-08:00", + "RandomSeed": "1619514598", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Queues/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json b/sdk/storage/Azure.Storage.Queues/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json new file mode 100644 index 000000000000..a581f893b7ac --- /dev/null +++ b/sdk/storage/Azure.Storage.Queues/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUri.json @@ -0,0 +1,8 @@ +{ + "Entries": [], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T15:04:53.3246838-08:00", + "RandomSeed": "1911844219", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file diff --git a/sdk/storage/Azure.Storage.Queues/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json b/sdk/storage/Azure.Storage.Queues/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json new file mode 100644 index 000000000000..d9d27461c2c7 --- /dev/null +++ b/sdk/storage/Azure.Storage.Queues/tests/SessionRecords/ServiceClientTests/Ctor_AzureSasCredential_VerifyNoSasInUriAsync.json @@ -0,0 +1,8 @@ +{ + "Entries": [], + "Variables": { + "DateTimeOffsetNow": "2020-12-18T15:04:53.6686833-08:00", + "RandomSeed": "1066441212", + "Storage_TestConfigDefault": "ProductionTenant\nkasoboltest\nU2FuaXRpemVk\nhttps://kasoboltest.blob.core.windows.net\nhttps://kasoboltest.file.core.windows.net\nhttps://kasoboltest.queue.core.windows.net\nhttps://kasoboltest.table.core.windows.net\n\n\n\n\nhttps://kasoboltest-secondary.blob.core.windows.net\nhttps://kasoboltest-secondary.file.core.windows.net\nhttps://kasoboltest-secondary.queue.core.windows.net\nhttps://kasoboltest-secondary.table.core.windows.net\n\nSanitized\n\n\nCloud\nBlobEndpoint=https://kasoboltest.blob.core.windows.net/;QueueEndpoint=https://kasoboltest.queue.core.windows.net/;FileEndpoint=https://kasoboltest.file.core.windows.net/;BlobSecondaryEndpoint=https://kasoboltest-secondary.blob.core.windows.net/;QueueSecondaryEndpoint=https://kasoboltest-secondary.queue.core.windows.net/;FileSecondaryEndpoint=https://kasoboltest-secondary.file.core.windows.net/;AccountName=kasoboltest;AccountKey=Kg==;\nencryptionScope" + } +} \ No newline at end of file