gpt4 book ai didi

c# - Webapi 传输大量大文件

转载 作者:行者123 更新时间:2023-11-30 15:54:46 26 4
gpt4 key购买 nike

<分区>

我目前正在计划通过网络 API 的更新机制。传输的文件最大可达 1 GB,并且可以有 20 个客户端同时尝试获取文件。

每当我查看示例时,我都会发现类似这样的内容(已简化):

public HttpResponseMessage GetFile(string name)
{
var reqFile = @"C:\updates\" + name;
var dataBytes = File.readAllBytes(reqFile)
var dataStream new MemoryStream (dataBytes);
HttpResponseMessage httprm = Request.CreateResponse(HttpStatusCode.OK);
httprm.Content = new StreamContent(dataStream);
httprm.Content.Headers.ContentDisposition = = new ContentDispositionHeaderValue("attachment");
httprm.Content.Headers.ContentDisposition.FileName = name;
httprm.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octetstream");

return httprm;
}

现在虽然在这些示例中他们将整个文件加载到内存中(因此对于客户端需要下载的单个文件,在我的情况下总共最多 20 GB.....这不是最佳的,即使我只加载每个特定文件只有一次我遇到类似的问题,因为它们可能处于不同的更新步骤)。

我看到的一个选项是,我事先将文件分成 10 MB 的 block ,让客户端下载它,然后再将它们放在一起。这样,单独文件的最大内存占用量将达到 200 MB,这是一个更可接受的区域。

虽然我想知道是否有另一种方法可以完成下载而不必为 20 个并发客户端使用 20 GB 内存(除了拆分)?

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