如何解决如何打开具有特定编码类型的 ShareFileClient 写入流?
我想使用 .NET api 在 Azure FileShare 资源中的 FileShareClient 上创建新 blob。有没有办法在执行此操作时指定它的编码? 要打开写入文件,我使用以下内容:
public Stream FileShareOpenWrite(Response<ShareFileProperties> properties,ShareFileOpenWriteOptions openoptions)
{
return shareFileClient.OpenWrite(false,properties.Value.ContentLength,openoptions);
}
是否有可能在打开 ShareFileClient 的编写器时指定编码?
对于本地文件,我有类似的功能,可以创建新的 StreamWriter 并允许我直接指定 ANSI 编码:
using (var writer = new StreamWriter(userInputModel.Path,true,Encoding.GetEncoding("ISO-8859-1")))
解决方法
如果要在文件共享中设置Azure文件的编码,我们可以使用rest API Set File Properties,然后在请求头中设置x-ms-content-encoding
。
代码方面,如果你使用的是azure文件存储sdk,可以参考这个article。
例如
ShareClient share = new ShareClient(connectionString,shareName);
ShareDirectoryClient directory = share.GetDirectoryClient(dirName);
ShareFileClient file = directory.GetFileClient(fileName);
if(await file.ExistsAsync()){
file.SetHttpHeadersAsync(<file size>,new ShareFileHttpHeaders(){ContentEncoding = {""}})
}else{
file.CreateAsync (<file size>,new ShareFileHttpHeaders(){ContentEncoding = {""}})
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。