如何使用Windows服务将文件上传到rackspace云

时间:2010-12-15 05:24:09

标签: windows-services c#-4.0 rackspace rackspace-cloud

使用我的Windows服务(目标框架= .Net framework 4.0客户端配置文件)我正在尝试将文件上传到rackspace云文件。

我在这里发现了一些asp.net c#apis https://github.com/rackspace/csharp-cloudfiles

但看起来它们与Windows服务不兼容。

如何让这项工作在一起的任何线索?

3 个答案:

答案 0 :(得分:1)

这是使用rackspce工作的完美库。我用它。我确信在Windows服务中使用这个库不是问题。但我认为.net框架客户端配置文件和com.mosso.cloudfiles.dll可能存在问题。但首先尝试使用客户端配置文件

我还使用以下代码将文件上传到Rackspace(配置它是我的配置类。而不是'Configuration.RackSpaceUserName'和'Configuration.RackSpaceKey'使用你自己的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);
        }

配置如下:

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

我不想使用com.mosso.cloudfiles.dll非常容易创建自己的rackspace驱动程序。因为实际上将文件上传到机架空间,您只需要使用'X-Auth-Token'标头发送放置请求。您还可以使用plugin for firefox检查请求结构,以查看和上传文件到Rackspace和firebug

答案 1 :(得分:0)

我在C#中有一些使用相同库的例子:

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

这是一个非常简单的CLI,但希望这应该让我知道如何使用它。

答案 2 :(得分:0)

我已经在这里待了大约一个小时,VS2010正在发生奇怪的事情。虽然我已经引用了dll和intellisense工作,但无法编译。

看起来引用的dll会消失。因此,如果您遇到同样的问题,我的建议是使用.NET 3.5的机架空间:csharp-cloudfiles-DOTNETv3.5-bin-2.0.0.0.zip

请务必将项目更改为相同的框架版本。它的效果非常好。

供您参考,下载页面位于:https://github.com/rackspace/csharp-cloudfiles/downloads