繁体   English   中英

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

[英]Rackspace Cloud Files Get Objects In Container C#

我一直在查看文档,测试示例并熟悉Rackspace Cloud Files API。 我记下了基本代码,API密钥,用户名和基本内容。 现在有一件事使我感到困惑,这个问题似乎没有得到很好的记录。

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

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

foreach(ContainerObject containerObject in containerObjects)
{
    MessageBox.Show(containerObject.ToString());
}

这不会返回我想要的结果,似乎什么也不会返回。

我正在通过在NuGet控制台中运行此命令提供的OpenStack: Install-Package Rackspace

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

一个常见的问题是没有指定区域。 如果您的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 API,则参考文档会指出CloudFilesProvider有一个名为ListObjects的方法。

文档说这种方法:

列出容器中的对象

该方法返回IEnumerable<ContainerObject> ,快速浏览一下参数列表对我来说就像您可以在第一个参数中只传递一个容器名称,而在其余参数中传递null一样-我会留给您找出用途-案例需求。

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

http://www.openstacknetsdk.org/docs/html/M_net_openstack_Providers_Rackspace_CloudFilesProvider_ListObjects.htm

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM