本文整理汇总了C#中Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob.SetMetadataAsync方法的典型用法代码示例。如果您正苦于以下问题:C# CloudBlockBlob.SetMetadataAsync方法的具体用法?C# CloudBlockBlob.SetMetadataAsync怎么用?C# CloudBlockBlob.SetMetadataAsync使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob
的用法示例。
在下文中一共展示了CloudBlockBlob.SetMetadataAsync方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ProcessJob
private async Task ProcessJob(CloudBlockBlob jobBlob, CloudBlobContainer container)
{
var name = await jobBlob.DownloadTextAsync();
var result = Compliments.GetRandomCompliment(name);
string resultBlobName = jobBlob.Name.Replace("job/", "result/");
CloudBlockBlob resultBlob = container.GetBlockBlobReference(resultBlobName);
await resultBlob.UploadTextAsync(result);
jobBlob.Metadata["Status"] = "finished";
await jobBlob.SetMetadataAsync();
}
示例2: TestBlobSASAsync
/// <summary>
/// Tests a blob SAS to determine which operations it allows.
/// </summary>
/// <param name="sasUri">A string containing a URI with a SAS appended.</param>
/// <param name="blobContent">A string content content to write to the blob.</param>
/// <returns>A Task object.</returns>
private static async Task TestBlobSASAsync(string sasUri, string blobContent)
{
// Try performing blob operations using the SAS provided.
// Return a reference to the blob using the SAS URI.
CloudBlockBlob blob = new CloudBlockBlob(new Uri(sasUri));
// Create operation: Upload a blob with the specified name to the container.
// If the blob does not exist, it will be created. If it does exist, it will be overwritten.
try
{
MemoryStream msWrite = new MemoryStream(Encoding.UTF8.GetBytes(blobContent));
msWrite.Position = 0;
using (msWrite)
{
await blob.UploadFromStreamAsync(msWrite);
}
Console.WriteLine("Create operation succeeded for SAS {0}", sasUri);
Console.WriteLine();
}
catch (StorageException e)
{
if (e.RequestInformation.HttpStatusCode == 403)
{
Console.WriteLine("Create operation failed for SAS {0}", sasUri);
Console.WriteLine("Additional error information: " + e.Message);
Console.WriteLine();
}
else
{
Console.WriteLine(e.Message);
Console.ReadLine();
throw;
}
}
// Write operation: Add metadata to the blob
try
{
await blob.FetchAttributesAsync();
string rnd = new Random().Next().ToString();
string metadataName = "name";
string metadataValue = "value";
blob.Metadata.Add(metadataName, metadataValue);
await blob.SetMetadataAsync();
Console.WriteLine("Write operation succeeded for SAS {0}", sasUri);
Console.WriteLine();
}
catch (StorageException e)
{
if (e.RequestInformation.HttpStatusCode == 403)
{
Console.WriteLine("Write operation failed for SAS {0}", sasUri);
Console.WriteLine("Additional error information: " + e.Message);
Console.WriteLine();
}
else
{
Console.WriteLine(e.Message);
Console.ReadLine();
throw;
}
}
// Read operation: Read the contents of the blob.
try
{
MemoryStream msRead = new MemoryStream();
using (msRead)
{
await blob.DownloadToStreamAsync(msRead);
msRead.Position = 0;
using (StreamReader reader = new StreamReader(msRead, true))
{
string line;
while ((line = reader.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
Console.WriteLine();
}
Console.WriteLine("Read operation succeeded for SAS {0}", sasUri);
Console.WriteLine();
}
catch (StorageException e)
{
if (e.RequestInformation.HttpStatusCode == 403)
{
Console.WriteLine("Read operation failed for SAS {0}", sasUri);
//.........这里部分代码省略.........
示例3: BlobWriteExpectLeaseSuccessAsync
/// <summary>
/// Test blob writing, expecting success.
/// </summary>
/// <param name="testBlob">The blob to test.</param>
/// <param name="sourceBlob">A blob to use as the source of a copy.</param>
/// <param name="testAccessCondition">The access condition to use.</param>
private async Task BlobWriteExpectLeaseSuccessAsync(CloudBlockBlob testBlob, CloudBlob sourceBlob, AccessCondition testAccessCondition)
{
await testBlob.SetMetadataAsync(testAccessCondition, null /* options */, null);
await testBlob.SetPropertiesAsync(testAccessCondition, null /* options */, null);
await UploadTextAsync(testBlob, "No Problem", Encoding.UTF8, testAccessCondition, null /* options */, null);
await testBlob.StartCopyAsync(TestHelper.Defiddler(sourceBlob.Uri), null /* source access condition */, testAccessCondition, null /* options */, null);
while (testBlob.CopyState.Status == CopyStatus.Pending)
{
await Task.Delay(1000);
await testBlob.FetchAttributesAsync();
}
var writeStream = await testBlob.OpenWriteAsync(testAccessCondition, null /* options */, null);
Stream stream = writeStream.AsStreamForWrite();
stream.WriteByte(0);
await stream.FlushAsync();
await testBlob.DeleteAsync(DeleteSnapshotsOption.None, testAccessCondition, null /* options */, null);
}
示例4: BlobWriteExpectLeaseFailureAsync
/// <summary>
/// Test blob write and creation, expecting lease failure.
/// </summary>
/// <param name="testBlob">The blob to test.</param>
/// <param name="sourceBlob">A blob to use as the source of a copy.</param>
/// <param name="testAccessCondition">The failing access condition to use.</param>
/// <param name="expectedErrorCode">The expected error code.</param>
/// <param name="description">The reason why these calls should fail.</param>
private async Task BlobWriteExpectLeaseFailureAsync(CloudBlockBlob testBlob, CloudBlockBlob sourceBlob, AccessCondition testAccessCondition, HttpStatusCode expectedStatusCode, string expectedErrorCode, string description)
{
await this.BlobCreateExpectLeaseFailureAsync(testBlob, sourceBlob, testAccessCondition, expectedStatusCode, expectedErrorCode, description);
OperationContext operationContext = new OperationContext();
await TestHelper.ExpectedExceptionAsync(
async () => await testBlob.SetMetadataAsync(testAccessCondition, null /* options */, operationContext),
operationContext,
description + " (Set Metadata)",
expectedStatusCode,
expectedErrorCode);
await TestHelper.ExpectedExceptionAsync(
async () => await testBlob.SetPropertiesAsync(testAccessCondition, null /* options */, operationContext),
operationContext,
description + " (Set Properties)",
expectedStatusCode,
expectedErrorCode);
await TestHelper.ExpectedExceptionAsync(
async () => await testBlob.DeleteAsync(DeleteSnapshotsOption.None, testAccessCondition, null /* options */, operationContext),
operationContext,
description + " (Delete)",
expectedStatusCode,
expectedErrorCode);
}
示例5: TouchBlobAsync
public static async Task TouchBlobAsync(CloudBlockBlob blob)
{
await blob.FetchAttributesAsync();
blob.Metadata.Add("touch", Guid.NewGuid().ToString("N"));
await blob.SetMetadataAsync();
}
示例6: BlobWriteExpectLeaseSuccessTask
/// <summary>
/// Test blob writing, expecting success.
/// </summary>
/// <param name="testBlob">The blob to test.</param>
/// <param name="sourceBlob">A blob to use as the source of a copy.</param>
/// <param name="testAccessCondition">The access condition to use.</param>
private void BlobWriteExpectLeaseSuccessTask(CloudBlockBlob testBlob, CloudBlob sourceBlob, AccessCondition testAccessCondition)
{
testBlob.SetMetadataAsync(testAccessCondition, null /* options */, new OperationContext()).Wait();
testBlob.SetPropertiesAsync(testAccessCondition, null /* options */, new OperationContext()).Wait();
UploadTextTask(testBlob, "No Problem", Encoding.UTF8, testAccessCondition, null /* options */, new OperationContext());
testBlob.StartCopyAsync(
TestHelper.Defiddler(sourceBlob.Uri),
null /* source access condition */,
testAccessCondition,
null /* options */,
new OperationContext()).Wait();
while (testBlob.CopyState.Status == CopyStatus.Pending)
{
Thread.Sleep(1000);
testBlob.FetchAttributesAsync().Wait();
}
Stream stream = testBlob.OpenWriteAsync(testAccessCondition, null /* options */, new OperationContext()).Result;
stream.WriteByte(0);
stream.Flush();
testBlob.DeleteAsync(DeleteSnapshotsOption.None, testAccessCondition, null /* options */, new OperationContext());
}