Skip to content

Commit b96c72d

Browse files
authored
Fix BlobBaseClient.SetNameFields - trim slashes according to ClientCo… (Azure#31886)
* fix BlobBaseClient.SetNameFields - trim slashes according to ClientConfiguration * Move new uTest From BBClient to BUriBuilder
1 parent f8e13ef commit b96c72d

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

sdk/storage/Azure.Storage.Blobs/src/BlobBaseClient.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -567,7 +567,7 @@ private void SetNameFieldsIfNull()
567567
{
568568
if (_name == null || _containerName == null || _accountName == null)
569569
{
570-
var builder = new BlobUriBuilder(Uri);
570+
var builder = new BlobUriBuilder(Uri, ClientConfiguration.TrimBlobNameSlashes);
571571
_name = builder.BlobName;
572572
_containerName = builder.BlobContainerName;
573573
_accountName = builder.AccountName;

sdk/storage/Azure.Storage.Blobs/tests/BlobUriBuilderTests.cs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -974,5 +974,30 @@ public void BlobUriBuilder_SasInvalidStartExpiryTimeFormat()
974974
Assert.IsTrue(e.Message.Contains("was not recognized as a valid DateTime."));
975975
}
976976
}
977+
978+
[RecordedTest]
979+
public void BlobBaseClient_SetNameFields_TrimBlobNameSlashes([Values("blobname", "/blobname", "//blobname", "vdir//blobname", "/vdir//blobname")] string blobName, [Values(true, false)] bool trimBlobNameSlashes)
980+
{
981+
// arrange
982+
var accountName = "account";
983+
var containerName = "container";
984+
var uriPrefix = $"https://{accountName}.blob.core.windows.net/{containerName}/";
985+
var options = new BlobClientOptions() { TrimBlobNameSlashes = trimBlobNameSlashes };
986+
987+
// act
988+
var blobBase = new BlobBaseClient(new Uri(string.Concat(uriPrefix, blobName)), options);
989+
990+
// verify
991+
if (trimBlobNameSlashes)
992+
{
993+
Assert.AreEqual(blobName.Trim('/'), blobBase.Name);
994+
}
995+
else
996+
{
997+
Assert.AreEqual(blobName, blobBase.Name);
998+
}
999+
Assert.AreEqual(containerName, blobBase.BlobContainerName);
1000+
Assert.AreEqual(accountName, blobBase.AccountName);
1001+
}
9771002
}
9781003
}

0 commit comments

Comments
 (0)