gpt4 book ai didi

azure - 无法在 csharp 中设置 Azure Data Lake Gen2 中 blob 的 ContentType

转载 作者:行者123 更新时间:2023-12-03 02:41:17 25 4
gpt4 key购买 nike

我正在使用Azure.Storage.Files.DataLake nuget 包,用于在为 Data Lake Gen2(包括层次结构)启用的 Azure 存储帐户上写入和附加文件。

但是,我需要设置我创建的新文件的内容类型,但我没有成功,尽管我认为我的内容编写正确。这是我的代码:

public async Task<bool> WriteBytes(string fileName, byte[] recordContent, string contentType)
{
var directory = await CreateDirectoryIfNotExists();
var fileClient = await directory.CreateFileAsync(fileName,
new PathHttpHeaders
{
ContentType = contentType
})).Value;

long recordSize = recordContent.Length;
var recordStream = new MemoryStream(recordContent);

await fileClient.AppendAsync(recordStream, offset: 0);
await fileClient.FlushAsync(position: recordSize);
return true;
}

执行上述代码后的结果如下(保留默认的content-type):

enter image description here

感谢您的见解

最佳答案

我能够重现您所看到的行为。基本上问题出在 fileClient.FlushAsync() 方法上。在调用此方法之前,我检查了文件的内容类型并且设置正确。但是,执行此方法后,内容类型更改为 application/octet-stream (这是默认值)。

查看此方法的文档 here ,您还可以在此方法中设置标题。我尝试做同样的事情,内容类型更改为所需的类型。

        var headers = new PathHttpHeaders()
{
ContentType = "text/plain"
};
await fileClient.FlushAsync(position: recordSize, httpHeaders: headers);

关于azure - 无法在 csharp 中设置 Azure Data Lake Gen2 中 blob 的 ContentType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61136733/

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