gpt4 book ai didi

azure - C# Azure 存储从一个 blob 复制文件到另一个 blob

转载 作者:行者123 更新时间:2023-12-03 04:43:05 26 4
gpt4 key购买 nike

如何读取文件以从一个 Blob 流式传输并上传到另一个 Blob?我的要求是将文件从一个 blob 复制到具有不同文件名的另一个 blob?在 C# 中

最佳答案

实现它的最简单方法是使用 "Azure Storage Data Movement Library" (您可以通过 nuget 包获取它)。

这是一个进行传输的简单示例:

using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Blob;
using Microsoft.WindowsAzure.Storage.DataMovement;
using System;

namespace BlobClient
{
class Program
{
static void Main(string[] args)
{
const string storageConnectionString = "DefaultEndpointsProtocol=https;AccountName=juanktest;AccountKey=loHQwke4lSEu1p2W3gg==";
const string container1 = "juankcontainer";
const string sourceBlobName = "test.txt";
const string destBlobName = "newTest.txt";


//Setup Account, blobclient and blobs
CloudStorageAccount account = CloudStorageAccount.Parse(storageConnectionString);
CloudBlobClient blobClient = account.CreateCloudBlobClient();

CloudBlobContainer blobContainer = blobClient.GetContainerReference(container1);
blobContainer.CreateIfNotExists();

CloudBlockBlob sourceBlob = blobContainer.GetBlockBlobReference(sourceBlobName);

CloudBlockBlob destinationBlob = blobContainer.GetBlockBlobReference(destBlobName);

//Setup data transfer
TransferContext context = new TransferContext();
Progress<TransferProgress> progress = new Progress<TransferProgress>(
(transferProgress) => {
Console.WriteLine("Bytes uploaded: {0}", transferProgress.BytesTransferred);
});

context.ProgressHandler = progress;

// Start the transfer
try
{
TransferManager.CopyAsync(sourceBlob, destinationBlob,
false /* isServiceCopy */,
null /* options */, context);
}
catch (Exception e)
{
Console.WriteLine("The transfer is cancelled: {0}", e.Message);
}

Console.WriteLine("CloudBlob {0} is copied to {1} ====successfully====",
sourceBlob.Uri.ToString(),
destinationBlob.Uri.ToString());

Console.ReadLine();
}
}
}

请注意,“Azure 存储数据移动库”非常强大,因此您可以跟踪传输进度、取消操作,甚至暂停操作以便稍后恢复;)

关于azure - C# Azure 存储从一个 blob 复制文件到另一个 blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32956024/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com