[英]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#示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.