2014-02-25 3 views
1

아래 코드를 asp.net mvc 프로젝트의 컨트롤러에서 실행하고 있습니다. 사용자가 rackspace에 클라우드 파일에 저장 한 파일을 보거나 다운로드 할 수있게하려고합니다.openstack.net을 사용하여 Rackspace의 CloudFiles에서 jpg 파일을 얻는 방법

 var identity = 
      new CloudIdentity() 
      { 
       Username = "username", 
       APIKey = "apikey" 
      }; 
     var storage = new CloudFilesProvider(identity); 

     Stream jpgStream = new MemoryStream(); 
     storage.GetObject("files.container", "1.jpg", jpgStream); 

     Stream pdfStream = new MemoryStream(); 
     storage.GetObject("files.container", "2.pdf", pdfStream); 

     var jpgResult = File(jpgStream, "Image/jpg", "1.jpg"); 
     var pdfResult = File(pdfStream, "Application/pdf", "2.pdf"); 

위의 코드는 pdfResult를 반환 할 때 작동합니다. 나는 올바른 파일을 얻는다. 그러나 jpgResult를 반환하면 브라우저가 1.jpg를 빈 0KB 파일로 다운로드합니다.

나는 이것을 올바르게하고 있습니까? 문제가 뭔지 알 겠어? 내가 추가 한 후 해결

답변

3

문제 : 파일() 호출하기 전에

 jpgStream.Position = 0; 
     pdfStream.Position = 0; 

. 질문에 따라 : File is empty and I don't understand why. Asp.net mvc FileResult

나는 이것이 pdf 파일의 문제가 아닌 이유를 알지 못합니다.

+0

이것은 내가 직접 스트림을 처리하는 방법입니다. https://github.com/openstacknetsdk/openstack.net/blob/master/src/testing/integration/Providers/Rackspace/UserObjectStorageTests.cs#L1292-L1300 –

0

GetObjectSaveToFile 메서드를 사용할 수도 있습니다.