如何使用openstack.net从Rackspace上的CloudFiles获取jpg文件

时间:2014-02-25 11:12:09

标签: c# openstack rackspace-cloud

我在asp.net mvc项目的控制器中运行以下代码。我想让用户查看或下载我在rackspace上存储在Cloud Files上的文件。

        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文件。

我这样做是对的吗?知道问题可能是什么吗?

2 个答案:

答案 0 :(得分:3)

我添加后问题解决了:

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

在File()调用之前。根据问题:File is empty and I don't understand why. Asp.net mvc FileResult

我不知道为什么这不是pdf文件的问题。

答案 1 :(得分:0)

您也可以使用GetObjectSaveToFile方法。