forked from jzhu2009/csharp-cloudfiles
-
Notifications
You must be signed in to change notification settings - Fork 0
Code Examples
jmeridth edited this page Mar 23, 2012
·
5 revisions
using System;
using Rackspace.Cloudfiles;
namespace cloudfilesconsole
{
class Program
{
private const string TestContainerName = "testcontainer12345";
private const string LocalFileName = "newobject.png";
private const string ObjectName = "folder1/folder2/folder3/newobject.png";
private const string NameKey = "name";
static void Main(string[] args)
{
var creds = new UserCredentials("YOUR_USERNAME_HERE", "YOUR_API_KEY_HERE");
var client = new CF_Client();
Connection conn = new CF_Connection(creds, client);
Console.WriteLine("Authenticating...");
conn.Authenticate();
Console.WriteLine("Authenticated");
DeleteContainer(conn, client);
CreateContainer(conn, client);
ListAllContainers(conn, client);
SaveObjectToCloudfiles(conn, client);
SaveObjectLocally(conn, client);
ListAllObjectsInTestContainer(conn, client);
DeleteAllObjectsInTestContainer(conn, client);
DeleteContainer(conn, client);
Console.ReadLine();
}
private static void DeleteAllObjectsInTestContainer(Connection conn, CF_Client client)
{
var container = new CF_Container(conn, client, TestContainerName);
var list = container.GetObjectList(true);
Console.WriteLine("Deleting all objects in {0} container", TestContainerName);
foreach (var item in list)
{
container.DeleteObject(item[NameKey]);
}
Console.WriteLine("Deleted all objects in {0} container", TestContainerName);
BreakLine();
}
private static void DeleteContainer(Connection conn, Client client)
{
try
{
var account = new CF_Account(conn, client);
Console.WriteLine("Deleting container {0}", TestContainerName);
account.DeleteContainer(TestContainerName);
Console.WriteLine("Successfully deleted container {0}", TestContainerName);
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
BreakLine();
}
private static void CreateContainer(Connection conn, Client client)
{
var account = new CF_Account(conn, client);
Console.WriteLine("Creating container {0}", TestContainerName);
account.CreateContainer(TestContainerName);
Console.WriteLine("Successfully created container {0}", TestContainerName);
BreakLine();
}
private static void ListAllContainers(Connection conn, Client client)
{
var account = new CF_Account(conn, client);
var list = account.GetContainers(true);
Console.WriteLine("There are {0} containers in the account", list.Count);
Console.WriteLine("Listing all containers");
foreach (var item in list)
{
Console.WriteLine(item.Name);
}
Console.WriteLine("Listing all containers complete");
BreakLine();
}
private static void ListAllObjectsInTestContainer(Connection conn, Client client)
{
var container = new CF_Container(conn, client, TestContainerName);
var list = container.GetObjectList(true);
Console.WriteLine("There are {0} items in the {1} container", list.Count, TestContainerName);
Console.WriteLine("Listing all objects in {0} container", TestContainerName);
foreach(var item in list)
{
Console.WriteLine(item[NameKey]);
Console.WriteLine("=============");
}
Console.WriteLine("Listed all objects in {0} container", TestContainerName);
BreakLine();
}
private static void SaveObjectLocally(Connection conn, Client client)
{
var container = new CF_Container(conn, client, TestContainerName);
var obj = new CF_Object(conn, container, client, ObjectName);
const string file_name = @"C:\\" + LocalFileName;
Console.WriteLine("Saving File {0} locally", LocalFileName);
obj.SaveToFile(file_name, true);
Console.WriteLine("File {0} saved locally", LocalFileName);
BreakLine();
}
private static void SaveObjectToCloudfiles(Connection conn, Client client)
{
var container = new CF_Container(conn, client, TestContainerName);
var obj = new CF_Object(conn, container, client, ObjectName);
Console.WriteLine("Saving File {0} to Cloudfiles", LocalFileName);
obj.WriteFromFile(@"C:\\" + LocalFileName);
Console.WriteLine("File {0} saved to Cloudfiles with object name {1}", LocalFileName, ObjectName);
BreakLine();
}
private static void BreakLine()
{
Console.WriteLine("========================================================");
Console.WriteLine("========================================================");
}
}
}