简体   繁体   中英

how to upload files to rackspace cloud using windows services

using my windows service (target framework=.Net framework 4.0 client profile) I am trying to upload files to rackspace cloudfiles.

I found out some asp.net c# apis here https://github.com/rackspace/csharp-cloudfiles

but looks like they are not compatible with windows services.

any clues how to make this work together?

It's perfect library for work with rackspce. I am use it. And i am sure that it's not problem to use this library inside of windows service. But i think possible problems with .net framework client profile and com.mosso.cloudfiles.dll. But try first with client profile.

Also i use following code to upload files to Rackspace(Configuration it's my configuration class. Instead of 'Configuration.RackSpaceUserName' and 'Configuration.RackSpaceKey' use yous own creadentials):

  private Connection CreateConnection()
        {
            var userCredentials = new UserCredentials(Configuration.RackSpaceUserName, Configuration.RackSpaceKey);
            return new Connection(userCredentials);
        }

  public void SaveUniqueFile(string containerName, string fileName, Guid guid, byte[] buffer)
        {
            string extension = Path.GetExtension(fileName);
            Connection connection = CreateConnection();
            MemoryStream stream = new MemoryStream(buffer);
            string uniqueFileName = String.Format("{0}{1}", guid, extension);
            connection.PutStorageItem(containerName, stream, uniqueFileName);
        }

Configuration something like this:

public class Configuration
{
  public static string RackSpaceUserName = "userName";
  public static string RackSpaceKey= "rackspaceKey";
}

I you don't want to use com.mosso.cloudfiles.dll very easy create you own driver for rackspace. Because actually for upload file to rackspace you just need send put request with 'X-Auth-Token' header. Also you can check request structure using plugin for firefox to view and upload files to Rackspace and firebug .

I have some example in C# using that same library here :

https://github.com/chmouel/upload-to-cf-cs

this is a pretty simple CLI but hopefully that should give an idea how to use it.

I've been around this for about one hour and weird things are happening into VS2010. Although I have referenced the dll and intellisense is working, cannot compile.

It looks like the referenced dll disappears. So, my recomendation in case you go into the same issue, use rack space for .NET 3.5: csharp-cloudfiles-DOTNETv3.5-bin-2.0.0.0.zip

Just be sure to change your project to the same framework version. It works really good.

For your reference, the downloads page is here: https://github.com/rackspace/csharp-cloudfiles/downloads

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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