2014-02-25 48 views
1

我正在asp.net mvc项目中的控制器中运行以下代码。我想让用户查看或下载我存储在Rackspace Cloud文件上的文件。如何使用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方法。

相关问题