SpecializedBlobExtensions
Add easy to discover methods to BlobContainerClient for
creating AppendBlobClient instances.
using Azure.Core.Cryptography;
using Azure.Core.Pipeline;
using Azure.Storage.Blobs.Models;
using Azure.Storage.Cryptography.Models;
using System;
using System.Runtime.CompilerServices;
using System.Threading;
using System.Threading.Tasks;
namespace Azure.Storage.Blobs.Specialized
{
public static class SpecializedBlobExtensions
{
public static AppendBlobClient GetAppendBlobClient(this BlobContainerClient client, string blobName)
{
return client.GetAppendBlobClientCore(blobName);
}
public static BlobContainerClient GetParentBlobContainerClient(this BlobBaseClient client)
{
return client.GetParentBlobContainerClientCore();
}
public static BlobBaseClient GetBlobBaseClient(this BlobContainerClient client, string blobName)
{
return client.GetBlobBaseClientCore(blobName);
}
public static BlobClient WithClientSideEncryptionOptions(this BlobClient client, ClientSideEncryptionOptions clientSideEncryptionOptions)
{
return client.WithClientSideEncryptionOptionsCore(clientSideEncryptionOptions);
}
public static BlobServiceClient GetParentBlobServiceClient(this BlobContainerClient client)
{
return client.GetParentBlobServiceClientCore();
}
public static BlobLeaseClient GetBlobLeaseClient(this BlobBaseClient client, string leaseId = null)
{
return client.GetBlobLeaseClientCore(leaseId);
}
public static BlobLeaseClient GetBlobLeaseClient(this BlobContainerClient client, string leaseId = null)
{
return client.GetBlobLeaseClientCore(leaseId);
}
public static BlockBlobClient GetBlockBlobClient(this BlobContainerClient client, string blobName)
{
return client.GetBlockBlobClientCore(blobName);
}
public static PageBlobClient GetPageBlobClient(this BlobContainerClient client, string blobName)
{
return client.GetPageBlobClientCore(blobName);
}
public static void UpdateClientSideKeyEncryptionKey(this BlobClient client, ClientSideEncryptionOptions encryptionOptionsOverride = null, BlobRequestConditions conditions = null, CancellationToken cancellationToken = default(CancellationToken))
{
UpdateClientsideKeyEncryptionKeyInternal(client, encryptionOptionsOverride, conditions, false, cancellationToken).EnsureCompleted();
}
[AsyncStateMachine(typeof(<UpdateClientSideKeyEncryptionKeyAsync>d__10))]
public static Task UpdateClientSideKeyEncryptionKeyAsync(this BlobClient client, ClientSideEncryptionOptions encryptionOptionsOverride = null, BlobRequestConditions conditions = null, CancellationToken cancellationToken = default(CancellationToken))
{
<UpdateClientSideKeyEncryptionKeyAsync>d__10 stateMachine = default(<UpdateClientSideKeyEncryptionKeyAsync>d__10);
stateMachine.<>t__builder = AsyncTaskMethodBuilder.Create();
stateMachine.client = client;
stateMachine.encryptionOptionsOverride = encryptionOptionsOverride;
stateMachine.conditions = conditions;
stateMachine.cancellationToken = cancellationToken;
stateMachine.<>1__state = -1;
stateMachine.<>t__builder.Start(ref stateMachine);
return stateMachine.<>t__builder.Task;
}
[AsyncStateMachine(typeof(<UpdateClientsideKeyEncryptionKeyInternal>d__11))]
private static Task UpdateClientsideKeyEncryptionKeyInternal(BlobClient client, ClientSideEncryptionOptions encryptionOptionsOverride, BlobRequestConditions conditions, bool async, CancellationToken cancellationToken)
{
<UpdateClientsideKeyEncryptionKeyInternal>d__11 stateMachine = default(<UpdateClientsideKeyEncryptionKeyInternal>d__11);
stateMachine.<>t__builder = AsyncTaskMethodBuilder.Create();
stateMachine.client = client;
stateMachine.encryptionOptionsOverride = encryptionOptionsOverride;
stateMachine.conditions = conditions;
stateMachine.async = async;
stateMachine.cancellationToken = cancellationToken;
stateMachine.<>1__state = -1;
stateMachine.<>t__builder.Start(ref stateMachine);
return stateMachine.<>t__builder.Task;
}
[AsyncStateMachine(typeof(<UnwrapKeyInternal>d__12))]
private static Task<byte[]> UnwrapKeyInternal(EncryptionData encryptionData, IKeyEncryptionKeyResolver keyResolver, bool async, CancellationToken cancellationToken)
{
<UnwrapKeyInternal>d__12 stateMachine = default(<UnwrapKeyInternal>d__12);
stateMachine.<>t__builder = AsyncTaskMethodBuilder<byte[]>.Create();
stateMachine.encryptionData = encryptionData;
stateMachine.keyResolver = keyResolver;
stateMachine.async = async;
stateMachine.cancellationToken = cancellationToken;
stateMachine.<>1__state = -1;
stateMachine.<>t__builder.Start(ref stateMachine);
return stateMachine.<>t__builder.Task;
}
[AsyncStateMachine(typeof(<WrapKeyInternal>d__13))]
private static Task<byte[]> WrapKeyInternal(ReadOnlyMemory<byte> contentEncryptionKey, string keyWrapAlgorithm, IKeyEncryptionKey key, bool async, CancellationToken cancellationToken)
{
<WrapKeyInternal>d__13 stateMachine = default(<WrapKeyInternal>d__13);
stateMachine.<>t__builder = AsyncTaskMethodBuilder<byte[]>.Create();
stateMachine.contentEncryptionKey = contentEncryptionKey;
stateMachine.keyWrapAlgorithm = keyWrapAlgorithm;
stateMachine.key = key;
stateMachine.async = async;
stateMachine.cancellationToken = cancellationToken;
stateMachine.<>1__state = -1;
stateMachine.<>t__builder.Start(ref stateMachine);
return stateMachine.<>t__builder.Task;
}
}
}