【问题标题】:Rackspace Cloud Files Get Objects In Container C#Rackspace 云文件在容器 C# 中获取对象
【发布时间】:2015-10-10 05:06:40
【问题描述】:

我一直在查看文档、测试示例并熟悉 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.

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

【问题讨论】:

标签: c# .net api rackspace cloudfiles


【解决方案1】:

一个常见的问题是没有指定区域。当您的 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();
        }
    }
}

【讨论】:

    【解决方案2】:

    如果您使用的是 Openstack.NET API,参考文档指出 CloudFilesProvider 有一个名为 ListObjects 的方法。

    文档说这种方法:

    列出容器中的对象

    该方法返回IEnumerable&lt;ContainerObject&gt;,快速浏览一下参数列表,在我看来,您可以在第一个参数中只传递一个容器名称,其余的则传递null——我会留给你来计算满足您的用例需求。

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

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

    【讨论】:

    • 用我更新的代码更新了答案。还是没有成功。
    猜你喜欢
    • 2013-06-20
    • 2014-06-23
    • 1970-01-01
    • 2011-09-23
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多