在 C# 中从 S3 读取 .xz 文件
Posted
技术标签:
【中文标题】在 C# 中从 S3 读取 .xz 文件【英文标题】:Read .xz file from S3 in C# 【发布时间】:2020-07-22 14:34:38 【问题描述】:我正在尝试使用以下代码从 S3 读取文件:
var dir = new S3DirectoryInfo(_amazonS3Client, bucketName, folderName);
IS3FileSystemInfo[] files = dir.GetFileSystemInfos();
if(files.Length > 0)
_bucketKey = files[0].Name;
var request = new GetObjectRequest
BucketName = bucketName,
Key = $"folderName/_bucketKey"
;
using (GetObjectResponse response = await _amazonS3Client.GetObjectAsync(request))
using (Stream responseStream = response.ResponseStream)
using (var reader = new StreamReader(responseStream))
var responseBody = reader.ReadToEnd();
File.WriteAllText(newFilePath, responseBody);
它对于非压缩文件工作正常,但是,我需要一些关于如何读取 .xz 文件的建议?我的文件就像DummyData_2020-07-21.csv.xz
【问题讨论】:
【参考方案1】:我找到了一个使用 SharpCompress
的解决方案,下面的代码对我有用
var request = new GetObjectRequest
BucketName = bucketName,
Key = $"folderName/bucketKey"
;
using (var obj = _amazonS3Client.GetObject(request))
obj.WriteResponseStreamToFile($"fileLocationbucketKey");
using (Stream xz = new XZStream(File.OpenRead($"fileLocationbucketKey")))
using (TextReader reader = new StreamReader(xz))
var responseBody = reader.ReadToEnd();
File.WriteAllText(newFilePath, responseBody);
【讨论】:
以上是关于在 C# 中从 S3 读取 .xz 文件的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C# 中从外部站点的 url 读取 PDF 文件 [关闭]