解压缩AWS对象

时间:2016-11-16 16:00:48

标签: c# amazon-web-services amazon-s3 amazon-ec2

我正在开发一个项目,我需要从S3 Bucket获取Zip文件。 我能够使用

将这些文件一次一个地复制到我的EC2实例
  foreach (S3Object o in response.S3Objects)
        {

            GetObjectRequest requests = new GetObjectRequest();
            requests.BucketName = "mybucket";
            requests.Key = o.Key;
            GetObjectResponse responses = client.GetObject(requests);


            responses.WriteResponseStreamToFile(@"D:\myfile.zip");
            Console.WriteLine("{0}\t{1}\t{2}", o.Key, o.Size, o.LastModified);
        }

但我想将这些文件动态解压缩到特定位置,而不是在本地复制它们。 我尝试了以下但是没有用

 using (ZipArchive archive = ZipFile.OpenRead(responses.ResponseStream.ToString())) //unzip file 
            {
                foreach (ZipArchiveEntry entry in archive.Entries)
                {

                       archive.ExtractToDirectory(myPath);

                    }
                }

            }

由于

1 个答案:

答案 0 :(得分:0)

ZipFile.OpenRead()获取本地文件的文件名,以便不起作用。但是,您可以在MemoryStream中解压缩归档(请参阅此answer和此answer)。