C# Rackspace云文件在容器C中获取对象#
我一直在阅读文档、测试示例并熟悉Rackspace云文件API。我得到了基本的代码,API密钥,用户名,基本的东西。现在有一件事让我困惑,这个问题似乎没有很好的记录 所以我要做的是获取所有对象,包括容器中的文件夹和文件。我试过这个例子: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);
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吗?用我的更新代码更新了答案。仍然没有成功。