【问题标题】:Read .xz file from S3 in C#在 C# 中从 S3 读取 .xz 文件
【发布时间】: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

【问题讨论】:

    标签: c# .net amazon-s3 xz


    【解决方案1】:

    我找到了一个使用 SharpCompress 的解决方案,下面的代码对我有用

                        var request = new GetObjectRequest
                        {
                            BucketName = bucketName,
                            Key = $"{folderName}/{bucketKey}"
                        };
    
                        using (var obj = _amazonS3Client.GetObject(request))
                        {
                            obj.WriteResponseStreamToFile($"{fileLocation}{bucketKey}");
                        }
    
                        using (Stream xz = new XZStream(File.OpenRead($"{fileLocation}{bucketKey}")))
                        using (TextReader reader = new StreamReader(xz))
                        {
                            var responseBody = reader.ReadToEnd();
                            File.WriteAllText(newFilePath, responseBody);
                        } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-29
      • 1970-01-01
      • 1970-01-01
      • 2015-07-25
      • 2018-08-22
      • 1970-01-01
      • 2021-04-29
      • 1970-01-01
      相关资源
      最近更新 更多