Windows サービス (ターゲット フレームワーク = .Net フレームワーク 4.0 クライアント プロファイル) を使用して、ファイルをラックスペース クラウドファイルにアップロードしようとしています。
ここでいくつかのasp.net c# APIを見つけましたhttps://github.com/rackspace/csharp-cloudfiles
ただし、Windows サービスとは互換性がないようです。
これを連携させる方法の手がかりはありますか?
Windows サービス (ターゲット フレームワーク = .Net フレームワーク 4.0 クライアント プロファイル) を使用して、ファイルをラックスペース クラウドファイルにアップロードしようとしています。
ここでいくつかのasp.net c# APIを見つけましたhttps://github.com/rackspace/csharp-cloudfiles
ただし、Windows サービスとは互換性がないようです。
これを連携させる方法の手がかりはありますか?
Rackspace での作業に最適なライブラリです。使っています。そして、Windows サービス内でこのライブラリを使用しても問題はないと確信しています。しかし、.net フレームワークのクライアント プロファイルと com.mosso.cloudfiles.dll に問題がある可能性があると思います。ただし、最初にクライアント プロファイルを試してください。
また、次のコードを使用して、ファイルを Rackspace にアップロードします (構成は私の構成クラスです。「Configuration.RackSpaceUserName」と「Configuration.RackSpaceKey」の代わりに、独自の資格情報を使用します)。
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 を使用したくない場合は、ラックスペース用の独自のドライバーを非常に簡単に作成してください。実際にファイルをラックスペースにアップロードするには、「X-Auth-Token」ヘッダーを使用して put リクエストを送信するだけで済みます。また、firefox のプラグインを使用してリクエスト構造を確認し、ファイルを表示して Rackspace およびfirebugにアップロードすることもできます。
私はこれを約1時間使用しており、VS2010で奇妙なことが起こっています。dll を参照し、インテリセンスは動作していますが、コンパイルできません。
参照されているdllが消えているようです。したがって、同じ問題が発生した場合の私の推奨事項は、.NET 3.5 のラック スペースを使用することです: csharp-cloudfiles-DOTNETv3.5-bin-2.0.0.0.zip
プロジェクトを同じフレームワーク バージョンに必ず変更してください。それは本当にうまくいきます。
参考までに、ダウンロード ページはこちらです: https://github.com/rackspace/csharp-cloudfiles/downloads
ここに同じライブラリを使用したC#の例があります:
https://github.com/chmouel/upload-to-cf-cs
これは非常に単純な CLI ですが、うまくいけば使い方がわかると思います。