gpt4 book ai didi

c# - 上传超过 2 GB 的大文件。最好的方法是什么?

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

我想将超过 2 GB 的大文件上传到 Azure 数据湖/bl​​ob 存储。

我尝试使用 Azure 的云 blob 方法 PutBlockListAsync。引用:https://www.andrewhoefling.com/Blog/Post/uploading-large-files-to-azure-blob-storage-in-c-sharp

我会向 grpc 核实。

在上传如此大的文件时,我可以尝试哪些不同的方法来提高性能?- 带 block 上传- 缓冲上传-GRPC-AZ复制-任何其他技术或混合技术

最佳答案

您可以使用Azure data movement library 将较大的文件上传到文件共享或 Blob 存储。

我在我的环境中尝试并得到以下结果:

代码:

using Microsoft.Azure.Storage;
using Microsoft.Azure.Storage.Blob;
using Microsoft.Azure.Storage.DataMovement;

class program
{
public static void Main(string[] args)
{
string storageConnectionString = "<Connection string>";
CloudStorageAccount account = CloudStorageAccount.Parse(storageConnectionString);
CloudBlobClient blobClient = account.CreateCloudBlobClient();
CloudBlobContainer blobContainer = blobClient.GetContainerReference("test");
blobContainer.CreateIfNotExists();
string sourceBlob = @"C:\Users\download\sample.docx";
CloudBlockBlob destPath = blobContainer.GetBlockBlobReference("sample.docx");
TransferManager.Configurations.ParallelOperations = 64;
// Setup the transfer context and track the download progress
SingleTransferContext context = new SingleTransferContext
{
ProgressHandler = new Progress<TransferStatus>(progress =>
{
Console.WriteLine("Bytes Upload: {0}", progress.BytesTransferred);
})
};
// upload the blob
var task = TransferManager.UploadAsync(
sourceBlob, destPath, null, context, CancellationToken.None);
task.Wait();
}
}

为了解决这个问题,我使用上面的代码使用了一个 100 MB 的文件来上传文件,您也可以使用 Nour 所说的 block 上传和 GRPC 方法。

控制台:

enter image description here

门户:

enter image description here

您还可以使用Azcopy 用于上传 datalakestorage 中的大文件。

关于c# - 上传超过 2 GB 的大文件。最好的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74740392/

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