Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Service Fabric应用程序中下载2 GB文件_C#_.net_Azure_Azure Storage Blobs - Fatal编程技术网

C# 在Service Fabric应用程序中下载2 GB文件

C# 在Service Fabric应用程序中下载2 GB文件,c#,.net,azure,azure-storage-blobs,C#,.net,Azure,Azure Storage Blobs,我正在设计一个应用程序,将支持上传和下载的XML文件限制为2 GBs。我使用Azure Blob存储作为永久存储来上载这些文件,然后下载它们。下面的一段代码抛出OutOfMemory异常: var blob = this.GetBlockBlobReference(blobId, blobContainerName); return await blob.DownloadTextAsync().ConfigureAwait(false); 此外,我不确定哪种方法会更快更干净。 更快的下载/

我正在设计一个应用程序,将支持上传和下载的XML文件限制为2 GBs。我使用Azure Blob存储作为永久存储来上载这些文件,然后下载它们。下面的一段代码抛出OutOfMemory异常:

 var blob = this.GetBlockBlobReference(blobId, blobContainerName);
 return await blob.DownloadTextAsync().ConfigureAwait(false);

此外,我不确定哪种方法会更快更干净。

更快的下载/上传斑点,你可以考虑使用。 . 此库专为高性能上载、下载和复制Azure存储Blob和文件而设计

您可以通过以下代码设置并行线程:

// Setup the number of the concurrent operations
TransferManager.Configurations.ParallelOperations = 64;
然后分别使用TransferManager.UploadAsync或TransferManager.DownloadAsync方法上载/下载blob


上传有多种方式,您可以修改它以便轻松下载。

不足为奇。不要试图在内存中一次读取整个2GB文件。这在桌面应用程序中是个坏主意,更不用说云应用了。改用DownloadToFile或DownloadToStream。如果目标是另一个块体,则使用StartCopy@PanagiotisKanavosDownloadToStream不会使用内存吗?另外,它会更快吗?它不会将整个文件存储在内存中,而是将其复制到目标流。不,你不能用MemoryStream来做这个,你会得到另一个2GB大小的缓冲区。你首先想做什么?不同的方法用于不同的目的jobs@PanagiotisKanavos我们可以使用DownloadToFile和并行线程下载吗?