1

https://github.com/rackspace/csharp-cloudfilesを使用してコマンドライン ツールを構築し、ファイルを Rackspace Cloud Files にアップロードしています。

問題は、アップロードの進行状況を追跡する方法がわからないことです (イベントなどはないようです)。

コードは次のとおりです。

// Create credentials, client and connection
var creds = new UserCredentials(username, apiKey);
CF_Client client = new CF_Client();
Connection conn = new CF_Connection(creds, client);
conn.Authenticate();

// Get container and upload file
var container = new CF_Container(conn, client, containerName);
var obj = new CF_Object(conn, container, client, remoteFileName);
obj.WriteFromFile(localFilePath);
4

1 に答える 1

1

組み込みのものはないようですが、おそらく独自のものを追加することができます。

別の方法は、入力を測定することです。ソースを見ると、WriteFromFileが事実上ちょうどであることがわかります

Dictionary<string,string> headers = new Dictionary<string,string>();
using(Stream stream = System.IO.File.OpenRead(localFilePath))
{
    obj.Write(stream, headers);
}

したがって、Writeに渡すストリームを、合計バイト数の読み取りの進行状況を測定する別のストリームクラスにラップすることができます(検索する場合はいくつかありますが、自分で書くのは簡単です)。コードから進行状況通知を追加したい場合は、ラップされたOpenStack Clientオブジェクトに追加する必要がありますが、それもそれほど難しいことではありません。

于 2012-05-03T09:34:47.137 に答える