2016-11-16 2 views
0

S3 Bucket에서 Zip 파일을 가져와야하는 프로젝트에서 작업하고 있습니다. 나는AWS 객체의 압축을 풉니 다.

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); 
     } 

를 사용하여 내 EC2 인스턴스에 한 번에 이러한 파일을 복사 할 수 있었다 그러나 나는 특정 위치로 즉시이 파일의 압축을 풀고 대신 로컬로 복사하고 싶습니다. 문제가 해결되지 않도록 내가 시도한 다음 있지만

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

         archive.ExtractToDirectory(myPath); 

        } 
       } 

      } 

감사

답변

0

ZipFile.OpenRead() 작동하지 않은 로컬 파일의 파일 이름을 사용합니다. 그러나 MemoryStream (이 answeranswer 참조)에서 보관 파일을 압축 해제 할 수 있습니다.

+0

내 EC2 인스턴스의 로컬 폴더에 파일을 압축 해제하지 않을 것이라고 생각하십니까? ZIP을 압축 해제하지 않고 읽습니다. 내 EC2 인스턴스의 로컬 폴더에 파일의 압축을 풀려합니다. – BigFish

관련 문제