本文整理汇总了C#中Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob.StartCopyAsync方法的典型用法代码示例。如果您正苦于以下问题:C# CloudBlockBlob.StartCopyAsync方法的具体用法?C# CloudBlockBlob.StartCopyAsync怎么用?C# CloudBlockBlob.StartCopyAsync使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob
的用法示例。
在下文中一共展示了CloudBlockBlob.StartCopyAsync方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: 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);
}
示例2: BlobCreateExpectLeaseFailureAsync
/// <summary>
/// Test blob 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 BlobCreateExpectLeaseFailureAsync(CloudBlockBlob testBlob, CloudBlockBlob sourceBlob, AccessCondition testAccessCondition, HttpStatusCode expectedStatusCode, string expectedErrorCode, string description)
{
OperationContext operationContext = new OperationContext();
await TestHelper.ExpectedExceptionAsync(
async () => await UploadTextAsync(testBlob, "No Dice", Encoding.UTF8, testAccessCondition, null /* options */, operationContext),
operationContext,
description + " (Upload Text)",
expectedStatusCode,
expectedErrorCode);
await TestHelper.ExpectedExceptionAsync(
async () => await testBlob.StartCopyAsync(TestHelper.Defiddler(sourceBlob.Uri), null /* source access condition */, testAccessCondition, null /* options */, operationContext),
operationContext,
description + " (Copy From)",
expectedStatusCode,
expectedErrorCode);
var writeStream = await testBlob.OpenWriteAsync(testAccessCondition, null /* options */, operationContext);
Stream stream = writeStream.AsStreamForWrite();
await TestHelper.ExpectedExceptionAsync(
async () =>
{
stream.WriteByte(0);
await stream.FlushAsync();
},
operationContext,
description + " (Write Stream)",
expectedStatusCode,
expectedErrorCode);
}
示例3: BlobCreateExpectLeaseFailureTask
/// <summary>
/// Test blob 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 void BlobCreateExpectLeaseFailureTask(CloudBlockBlob testBlob, CloudBlockBlob sourceBlob, AccessCondition testAccessCondition, HttpStatusCode expectedStatusCode, string expectedErrorCode, string description)
{
TestHelper.ExpectedException(
() => UploadTextTask(testBlob, "No Dice", Encoding.UTF8, testAccessCondition, null /* options */),
description + " (Upload Text)",
expectedStatusCode,
expectedErrorCode);
TestHelper.ExpectedExceptionTask(
testBlob.StartCopyAsync(TestHelper.Defiddler(sourceBlob.Uri), null /* source access condition */, testAccessCondition, null /* options */, new OperationContext()),
description + " (Copy From)",
expectedStatusCode,
expectedErrorCode);
Stream stream = testBlob.OpenWriteAsync(testAccessCondition, null /* options */, new OperationContext()).Result;
TestHelper.ExpectedException(
() =>
{
stream.WriteByte(0);
stream.Flush();
},
description + " (Write Stream)",
expectedStatusCode,
expectedErrorCode);
}
示例4: 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());
}
示例5: StartCopyFromFile
private async Task StartCopyFromFile(long taskId, IStorageBlobManagement destChannel, CloudFile srcFile, CloudBlockBlob destBlob)
{
bool destExist = true;
try
{
await destBlob.FetchAttributesAsync(null, this.RequestOptions, this.OperationContext, this.CmdletCancellationToken);
}
catch (StorageException ex)
{
if (ex.IsNotFoundException())
{
destExist = false;
}
else
{
throw;
}
}
if (!destExist || this.ConfirmOverwrite(srcFile.Uri.ToString(), destBlob.Uri.ToString()))
{
string copyId = await destBlob.StartCopyAsync(srcFile.GenerateCopySourceFile(), null, null, this.RequestOptions, this.OperationContext, this.CmdletCancellationToken);
this.OutputStream.WriteVerbose(taskId, String.Format(Resources.CopyDestinationBlobPending, destBlob.Name, destBlob.Container.Name, copyId));
this.WriteCloudBlobObject(taskId, destChannel, destBlob);
}
}