我正在尝试修复一个Azure函数,该函数正在从blob存储中阅读上传的文件夹及其文件的流。我正在尝试添加代码,以便从上传的压缩文件夹中阅读内容/文件名。
我有两个问题:
问题1:我能够调试Azure run方法两次,但现在它不再阅读了。我认为它只读一次,但它只读一次正常的文件夹,但忽略了压缩的一个。
如何使Azure函数将读取相同的文件夹用于调试目的,有帮助吗?
问题2:这段代码至少读取普通文件夹一次,但忽略压缩文件夹。我无法弄清楚如何访问和读取特定的压缩文件夹?
我在运行时得到以下结果,并且我无法在run方法中命中断点:
FileFunction: blobTrigger
ListsFunction: timerTrigger
For detailed output, run func with --verbose flag.
[2023-04-25T03:02:40.519Z] Host lock lease acquired by instance ID '000000000000000000000000UI906F5'.
示例代码:
[FunctionName("FileFunction")]
public async Task Run([BlobTrigger("ContainerName/{folder}/{name}", Connection = "AzureJobsStorage")] Stream stream, string folder, string name, IDictionary<string, string> metadata)
{
string fileName;
Log.Information("'{name}' was uploaded to folder '{folder}'.", name, folder);
// Check for zipped folder
using (ZipArchive archive = new ZipArchive(stream))
{
foreach (ZipArchiveEntry entry in archive.Entries)
{
fileName = entry.FullName; //trying to read zip file
}
}
1条答案
按热度按时间gorkyyrv1#
这段代码至少读取普通文件夹一次,但忽略压缩文件夹。我无法弄清楚如何访问和读取特定的压缩文件夹
我注意到您的代码中缺少读取zip文件内容的代码。要读取zip文件的内容,需要访问每个
ZipArchiveEntry
的Stream
并读取其内容。使用下面的代码检查上传的文件是否。zip文件或普通文件,并读取该特定文件的内容。
上传中。将文件压缩到blob中的文件夹:
最近上传阅读内容。zip文件:
上传正常(.txt)文件到blob中的文件夹:
最近上传阅读内容。txt文件: