C# 如何使用openstack.net从Rackspace上的CloudFiles获取jpg文件
我正在asp.net mvc项目的控制器中运行以下代码。我希望使用户能够查看或下载我存储在rackspace上的云文件中的文件C# 如何使用openstack.net从Rackspace上的CloudFiles获取jpg文件,c#,openstack,rackspace-cloud,C#,Openstack,Rackspace Cloud,我正在asp.net mvc项目的控制器中运行以下代码。我希望使用户能够查看或下载我存储在rackspace上的云文件中的文件 var identity = new CloudIdentity() { Username = "username", APIKey = "apikey" }; var storage = new Clo
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文件下载
我这样做对吗?知道问题是什么吗?在我添加以下内容后,问题已解决:
jpgStream.Position = 0;
pdfStream.Position = 0;
在调用File()之前。根据问题:
我不知道为什么这不是pdf文件的问题。您也可以使用GetObjectSaveToFile方法。这正是我自己处理流的方式: