C# Rackspace云文件在容器C中获取对象#

C# Rackspace云文件在容器C中获取对象#,c#,.net,api,rackspace,cloudfiles,C#,.net,Api,Rackspace,Cloudfiles,我一直在阅读文档、测试示例并熟悉Rackspace云文件API。我得到了基本的代码,API密钥,用户名,基本的东西。现在有一件事让我困惑,这个问题似乎没有很好的记录 所以我要做的是获取所有对象,包括容器中的文件夹和文件。我试过这个例子: IEnumerable<ContainerObject> containerObjects = cloudFilesProvider.ListObjects("storage",null,null,null,null,null,false,ci);

我一直在阅读文档、测试示例并熟悉Rackspace云文件API。我得到了基本的代码,API密钥,用户名,基本的东西。现在有一件事让我困惑,这个问题似乎没有很好的记录

所以我要做的是获取所有对象,包括容器中的文件夹和文件。我试过这个例子:

IEnumerable<ContainerObject> containerObjects = cloudFilesProvider.ListObjects("storage",null,null,null,null,null,false,ci);

foreach(ContainerObject containerObject in containerObjects)
{
    MessageBox.Show(containerObject.ToString());
}
IEnumerable containerObjects=CloudFileProvider.ListObjects(“存储”,null,null,null,null,false,ci);
foreach(ContainerObject中的ContainerObject ContainerObject)
{
Show(containerObject.ToString());
}
这不会返回我正在寻找的结果,它似乎不会返回任何东西

我使用的OpenStack是通过在NuGet控制台中运行以下命令提供的:
安装程序包机架空间


我正在尝试为我和我的家人创建一个文件备份程序。

如果您使用的是Openstack.NET API,参考文档表明
CloudFileProvider
有一个名为
ListObjects
的方法

文件说这种方法:

列出容器中的对象

该方法返回
IEnumerable
,快速浏览参数列表,在我看来,您可以在第一个参数中只传递一个容器名称,在其余参数中传递
null
——我将把它留给您来确定您的用例需求

下面的文档页面详细描述了该方法,并包括一个完整的C#示例


一个常见问题是没有指定区域。如果Rackspace云帐户的默认区域与容器所在的区域不同,则必须指定区域,否则将看不到列出的任何结果。这是相当误导的

下面是一个示例控制台应用程序,它打印特定区域中所有容器(及其对象)的内容。将“DFW”更改为容器所在区域的名称。如果您不确定哪个区域有您的容器,请登录Rackspace云控制面板,转到“存储>文件”,并在右上角的下拉列表中记录该区域

using System;
using net.openstack.Core.Domain;
using net.openstack.Providers.Rackspace;

namespace ListCloudFiles
{
    class Program
    {
        static void Main()
        {
            var region = "DFW";
            var identity = new CloudIdentity
            {
                Username = "username",
                APIKey = "apikey"
            };

            var cloudFilesProvider = new CloudFilesProvider(identity);

            foreach (Container container in cloudFilesProvider.ListContainers(region: region))
            {
                Console.WriteLine(container.Name);

                foreach (ContainerObject obj in cloudFilesProvider.ListObjects(container.Name, region: region))
                {
                    Console.WriteLine(" * " + obj.Name);
                }
            }
            Console.ReadLine();
        }
    }
}

您正在使用OpenStack.NET吗?用我的更新代码更新了答案。仍然没有成功。