本文整理汇总了C#中Microsoft.WindowsAzure.Storage.Blob.CloudBlob.SetMetadataAsync方法的典型用法代码示例。如果您正苦于以下问题:C# CloudBlob.SetMetadataAsync方法的具体用法?C# CloudBlob.SetMetadataAsync怎么用?C# CloudBlob.SetMetadataAsync使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Microsoft.WindowsAzure.Storage.Blob.CloudBlob
的用法示例。
在下文中一共展示了CloudBlob.SetMetadataAsync方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: BlobAcquireRenewLeaseTestAsync
/// <summary>
/// Verifies the behavior of a lease while the lease holds. Once the lease expires, this method confirms that write operations succeed.
/// The test is cut short once the <c>testLength</c> time has elapsed. (This last feature is necessary for infinite leases.)
/// </summary>
/// <param name="leasedBlob">The blob to test.</param>
/// <param name="duration">The duration of the lease.</param>
/// <param name="testLength">The maximum length of time to run the test.</param>
/// <param name="tolerance">The allowed lease time error.</param>
internal async Task BlobAcquireRenewLeaseTestAsync(CloudBlob leasedBlob, TimeSpan? duration, TimeSpan testLength, TimeSpan tolerance)
{
OperationContext operationContext = new OperationContext();
DateTime beginTime = DateTime.UtcNow;
bool testOver = false;
do
{
try
{
// Attempt to write to the blob with no lease ID.
await leasedBlob.SetMetadataAsync(null, null, operationContext);
// The write succeeded, which means that the lease must have expired.
// If the lease was infinite then there is an error because it should not have expired.
Assert.IsNotNull(duration, "An infinite lease should not expire.");
// The lease should be past its expiration time.
Assert.IsTrue(DateTime.UtcNow - beginTime > duration - tolerance, "Writes should not succeed while lease is present.");
// Since the lease has expired, the test is over.
testOver = true;
}
catch (Exception)
{
if (operationContext.LastResult.ExtendedErrorInformation.ErrorCode == BlobErrorCodeStrings.LeaseIdMissing)
{
// We got this error because the lease has not expired yet.
// Make sure the lease is not past its expiration time yet.
DateTime currentTime = DateTime.UtcNow;
if (duration.HasValue)
{
Assert.IsTrue(currentTime - beginTime < duration + tolerance, "Writes should succeed after a lease expires.");
}
// End the test early if necessary.
if (currentTime - beginTime > testLength)
{
// The lease has not expired, but we're not waiting any longer.
return;
}
}
else
{
// Some other error occurred. Rethrow the exception.
throw;
}
}
// Attempt to read from the blob. This should always succeed.
await leasedBlob.FetchAttributesAsync();
// Wait 1 second before trying again.
if (!testOver)
{
await Task.Delay(TimeSpan.FromSeconds(1));
}
}
while (!testOver);
// The lease expired. Write to and read from the blob once more.
await leasedBlob.SetMetadataAsync();
await leasedBlob.FetchAttributesAsync();
}
示例2: SetBlobMetadataAsync
/// <summary>
/// Return a task that asynchronously set blob meta data
/// </summary>
/// <param name="blob">CloudBlob object</param>
/// <param name="accessCondition">Access condition</param>
/// <param name="options">Blob request options</param>
/// <param name="operationContext">An object that represents the context for the current operation.</param>
public Task SetBlobMetadataAsync(CloudBlob blob, AccessCondition accessCondition,
BlobRequestOptions options, OperationContext operationContext, CancellationToken cmdletCancellationToken)
{
return blob.SetMetadataAsync(accessCondition, options, operationContext, cmdletCancellationToken);
}