【发布时间】:2018-01-12 23:12:32
【问题描述】:
我们有一个新要求,即我们的所有数据都需要在静态和传输中进行加密以用于 azure blob 存储。我们刚刚启用了透明加密,因此新文件将被加密,但现有文件仍未加密。我们需要使用工具重新上传现有文件,以便对它们进行加密。我的问题是,如果src和dst相同,我调用StartCopyAsync会发生什么?文件会损坏吗?这是一个安全的操作吗?
private async Task CopyContainerContents(CloudBlobContainer src, CloudBlobContainer dst)
{
Stopwatch sw = new Stopwatch();
sw.Start();
BlobResultSegment blobSegment = await src.ListBlobsSegmentedAsync(
prefix: "",
useFlatBlobListing: true,
blobListingDetails: BlobListingDetails.All,
maxResults: null,
currentToken: new BlobContinuationToken(),
options: new BlobRequestOptions(),
operationContext: new OperationContext(),
cancellationToken:new CancellationToken()
);
var blobs = blobSegment.Results.OfType<CloudBlob>().ToList();
foreach (var blob in blobs)
{
CloudBlob srcBlob = (CloudBlob)blob;
// regular file
Console.WriteLine("Copying "+srcBlob.Name);
CloudBlob dstBlob = dst.GetBlobReference(srcBlob.Name);
await dstBlob.StartCopyAsync(srcBlob.Uri);
}
sw.Stop();
Console.WriteLine("TOTAL TIME: "+sw.Elapsed.TotalSeconds);
}
【问题讨论】:
-
你试过了吗?也许你可以报告发生了什么。
-
似乎工作正常,但它是异步的。所以它工作正常可能是一种侥幸。
标签: c# azure azure-storage azure-blob-storage