Skip to content

Commit 9161f2f

Browse files
authored
[Storage] [DataMovement] Added back default constructors for ResourceProviders for Anonymous Access (Azure#48438)
* Added back default constructors for StorageResourceProviders to support Anonymous acces * Removed comment about static call for FromClient * Rerecord test to avoid 500 recordings in net-pullrequest * Trying to rerecord different tests * bumped version to 12.1.0
1 parent d7721df commit 9161f2f

18 files changed

+227
-9
lines changed

sdk/storage/Azure.Storage.DataMovement.Blobs/CHANGELOG.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
# Release History
22

3-
## 12.0.1 (Unreleased)
3+
## 12.1.0 (Unreleased)
4+
5+
### Features Added
6+
- Added support for anonymous access by adding a default constructor for `BlobsStorageResourceProvider`.
47

58
### Bugs Fixed
69
- Fixed an issue that would prevent transfers of large files (>200 GiB) for certain destination resource types.

sdk/storage/Azure.Storage.DataMovement.Blobs/api/Azure.Storage.DataMovement.Blobs.net6.0.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ public BlobContainerClientTransferOptions() { }
2424
}
2525
public partial class BlobsStorageResourceProvider : Azure.Storage.DataMovement.StorageResourceProvider
2626
{
27+
public BlobsStorageResourceProvider() { }
2728
public BlobsStorageResourceProvider(Azure.AzureSasCredential credential) { }
2829
public BlobsStorageResourceProvider(Azure.Core.TokenCredential credential) { }
2930
public BlobsStorageResourceProvider(Azure.Storage.StorageSharedKeyCredential credential) { }

sdk/storage/Azure.Storage.DataMovement.Blobs/api/Azure.Storage.DataMovement.Blobs.net8.0.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ public BlobContainerClientTransferOptions() { }
2424
}
2525
public partial class BlobsStorageResourceProvider : Azure.Storage.DataMovement.StorageResourceProvider
2626
{
27+
public BlobsStorageResourceProvider() { }
2728
public BlobsStorageResourceProvider(Azure.AzureSasCredential credential) { }
2829
public BlobsStorageResourceProvider(Azure.Core.TokenCredential credential) { }
2930
public BlobsStorageResourceProvider(Azure.Storage.StorageSharedKeyCredential credential) { }

sdk/storage/Azure.Storage.DataMovement.Blobs/api/Azure.Storage.DataMovement.Blobs.netstandard2.0.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ public BlobContainerClientTransferOptions() { }
2424
}
2525
public partial class BlobsStorageResourceProvider : Azure.Storage.DataMovement.StorageResourceProvider
2626
{
27+
public BlobsStorageResourceProvider() { }
2728
public BlobsStorageResourceProvider(Azure.AzureSasCredential credential) { }
2829
public BlobsStorageResourceProvider(Azure.Core.TokenCredential credential) { }
2930
public BlobsStorageResourceProvider(Azure.Storage.StorageSharedKeyCredential credential) { }

sdk/storage/Azure.Storage.DataMovement.Blobs/src/Azure.Storage.DataMovement.Blobs.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
</PropertyGroup>
66
<PropertyGroup>
77
<AssemblyTitle>Microsoft Azure.Storage.DataMovement.Blobs client library</AssemblyTitle>
8-
<Version>12.0.1</Version>
8+
<Version>12.1.0</Version>
99
<!--The ApiCompatVersion is managed automatically and should not generally be modified manually.-->
1010
<ApiCompatVersion>12.0.0</ApiCompatVersion>
1111
<DefineConstants>BlobDataMovementSDK;$(DefineConstants)</DefineConstants>

sdk/storage/Azure.Storage.DataMovement.Blobs/src/BlobsStorageResourceProvider.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,22 @@ private enum CredentialType
4343
private readonly Func<Uri, CancellationToken, ValueTask<StorageSharedKeyCredential>> _getStorageSharedKeyCredential;
4444
private readonly Func<Uri, CancellationToken, ValueTask<AzureSasCredential>> _getAzureSasCredential;
4545

46+
/// <summary>
47+
/// <para>
48+
/// Constructs this provider to use no credentials when making a new Blob Storage
49+
/// <see cref="StorageResource"/>.
50+
/// </para>
51+
/// <para>
52+
/// This instance will NOT use any credential when constructing the underlying
53+
/// Azure.Storage.Blobs client, e.g. <see cref="BlockBlobClient(Uri, BlobClientOptions)"/>.
54+
/// This is for the purpose of either anonymous access when constructing the client.
55+
/// </para>
56+
/// </summary>
57+
public BlobsStorageResourceProvider()
58+
{
59+
_credentialType = CredentialType.None;
60+
}
61+
4662
/// <summary>
4763
/// <para>
4864
/// Constructs this provider to use the given credential when making a new Blob Storage

sdk/storage/Azure.Storage.DataMovement.Blobs/tests/BlobsStorageResourceProviderTests.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ public class BlobsStorageResourceProviderTests
2121
{
2222
public enum CredType
2323
{
24+
None,
2425
SharedKey,
2526
Token,
2627
Sas
@@ -53,6 +54,11 @@ private void AssertCredPresent(BlobClientConfiguration clientConfig, CredType cr
5354
Assert.IsNull(clientConfig.TokenCredential);
5455
Assert.IsNotNull(clientConfig.SasCredential);
5556
break;
57+
case CredType.None:
58+
Assert.IsNull(clientConfig.SharedKeyCredential);
59+
Assert.IsNull(clientConfig.TokenCredential);
60+
Assert.IsNull(clientConfig.SasCredential);
61+
break;
5662
default:
5763
throw new ArgumentException("No assertion support for cred type " + credType.ToString());
5864
}
@@ -102,7 +108,7 @@ private void AssertBlobStorageResourceType(
102108
[Combinatorial]
103109
public async Task FromContainer(
104110
[Values(true, false)] bool withPrefix,
105-
[Values(CredType.SharedKey, CredType.Token, CredType.Sas)] CredType credType)
111+
[Values(CredType.SharedKey, CredType.Token, CredType.Sas, CredType.None)] CredType credType)
106112
{
107113
const string containerName = "mycontainer";
108114
const string prefix = "my/prefix";
@@ -114,6 +120,7 @@ public async Task FromContainer(
114120
CredType.SharedKey => new(mockCreds.SharedKey.Object),
115121
CredType.Token => new(mockCreds.Token.Object),
116122
CredType.Sas => new(mockCreds.Sas.Object),
123+
CredType.None => new(),
117124
_ => throw new ArgumentException("Bad cred type"),
118125
};
119126
BlobStorageResourceContainer resource = await provider.FromContainerAsync(uri) as BlobStorageResourceContainer;
@@ -128,7 +135,7 @@ public async Task FromContainer(
128135
[Combinatorial]
129136
public async Task FromBlob(
130137
[Values(BlobType.Unspecified, BlobType.Block, BlobType.Page, BlobType.Append)] BlobType blobType,
131-
[Values(CredType.SharedKey, CredType.Token, CredType.Sas)] CredType credType)
138+
[Values(CredType.SharedKey, CredType.Token, CredType.Sas, CredType.None)] CredType credType)
132139
{
133140
const string containerName = "mycontainer";
134141
const string blobName = "my/blob.txt";
@@ -140,6 +147,7 @@ public async Task FromBlob(
140147
CredType.SharedKey => new(mockCreds.SharedKey.Object),
141148
CredType.Token => new(mockCreds.Token.Object),
142149
CredType.Sas => new(mockCreds.Sas.Object),
150+
CredType.None => new(),
143151
_ => throw new ArgumentException("Bad cred type"),
144152
};
145153

sdk/storage/Azure.Storage.DataMovement.Files.Shares/CHANGELOG.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
# Release History
22

3-
## 12.0.1 (Unreleased)
3+
## 12.1.0 (Unreleased)
4+
5+
### Features added
6+
- Added support for anonymous access by adding a default constructor for `ShareFilesStorageResourceProvider`.
47

58
### Bugs Fixed
69
- Fixed an issue that would prevent transfers of large files (>200 GiB) for certain destination resource types.

sdk/storage/Azure.Storage.DataMovement.Files.Shares/api/Azure.Storage.DataMovement.Files.Shares.net6.0.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ public ShareDirectoryClientTransferOptions() { }
88
}
99
public partial class ShareFilesStorageResourceProvider : Azure.Storage.DataMovement.StorageResourceProvider
1010
{
11+
public ShareFilesStorageResourceProvider() { }
1112
public ShareFilesStorageResourceProvider(Azure.AzureSasCredential credential) { }
1213
public ShareFilesStorageResourceProvider(Azure.Core.TokenCredential credential) { }
1314
public ShareFilesStorageResourceProvider(Azure.Storage.StorageSharedKeyCredential credential) { }

sdk/storage/Azure.Storage.DataMovement.Files.Shares/api/Azure.Storage.DataMovement.Files.Shares.net8.0.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ public ShareDirectoryClientTransferOptions() { }
88
}
99
public partial class ShareFilesStorageResourceProvider : Azure.Storage.DataMovement.StorageResourceProvider
1010
{
11+
public ShareFilesStorageResourceProvider() { }
1112
public ShareFilesStorageResourceProvider(Azure.AzureSasCredential credential) { }
1213
public ShareFilesStorageResourceProvider(Azure.Core.TokenCredential credential) { }
1314
public ShareFilesStorageResourceProvider(Azure.Storage.StorageSharedKeyCredential credential) { }

0 commit comments

Comments
 (0)