2012-05-03 4 views
1

https://github.com/rackspace/csharp-cloudfiles을 사용하여 Rackspace 클라우드 파일에 파일을 업로드하는 명령 줄 도구를 대량으로 사용하고 있습니다.C에서 파일을 Rackspace 클라우드 파일로 업로드 할 때 진행 상태를 추적하십시오.

문제는 업로드 진행 상황을 추적하는 방법을 알지 못한다는 것입니다 (어떤 종류의 이벤트 나 것 같지 않습니다). 내장 된, 아니,하지만 당신은 아마도 자신을 추가 할 수 있습니다 거기에 하나처럼

// 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); 

답변

1

이 보이지 않는 :

여기에 코드입니다.

대안으로 입력을 측정 할 수 있습니다. 당신이 경우 the source를 보면 당신은 총 바이트 읽기 진행 상황을 측정하는 또 다른 스트림 클래스에서 쓰기에 전달 단지

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

그래서 당신이 스트림을 래핑 할 수 WriteFromFile 효과적으로 것을 볼 수 있습니다 (주위에 몇 가지있다 검색, 또는 자신을 쓰기에 충분히 쉬울 것입니다). 코드에서 진도 통지를 다시 추가하려면 포장 된 OpenStack Client object에 추가해야하지만 너무 어렵지는 않습니다.

+0

감사합니다. –