gpt4 book ai didi

c# - 处理作为独立进程运行的 zip 文件 Azure 函数

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

我想创建一个 Azure 函数,该函数在将 zip 文件上传到 Azure 存储帐户时触发。我需要将此函数创建为一个独立的进程,因为我的目标是无法在进程中运行的 .NET 7。但隔离进程不支持 blob 流输入,blob 内容作为字符串输入。我尝试使用 GetBytes 从多种编码(UTF8、ASCII 等)将字符串转换为 MemoryStream,但无法从中获取有效的 ZipArchive。如果我只是从磁盘将其作为文件流打开,我正在测试的文件就可以正常工作。

所以我的问题基本上是,是否无法从独立进程的 Azure 功能处理 zip 文件,或者我是否做错了什么?

一些代码:

    public void Run([BlobTrigger("test-zip/{name}", Connection = "StorageConnectionString")] string myBlob, string name)
{
var bytes = Encoding.ASCII.GetBytes(myBlob);
using var ms = new MemoryStream(bytes);
using var zip = new ZipArchive(ms); // exception or invalid zip (no entries) depending on the encoding that is used
}

string blob = @"C:\tmp\test.zip";
using var file = File.OpenRead(blob);
using var zip = new ZipArchive(file); // works fine

最佳答案

不,你没有做错任何事。 可以使用流作为输入类型,但目前还不能,因为它处于预览状态。

如果您习惯使用预览功能,请阅读 this :

Preview types require use of Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs 5.1.0-preview1 or later, Microsoft.Azure.Functions.Worker 1.12.1-preview1 or later, and Microsoft.Azure.Functions.Worker.Sdk 1.9.0-preview1 or later. When developing on your local machine, you will need Azure Functions Core Tools version 4.0.5000 or later.

关于c# - 处理作为独立进程运行的 zip 文件 Azure 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76340504/

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