2013-03-31 69 views
0

我需要將文件上傳到RackSpace的雲文件。如何使用ASP.NET MVC3網站的cUrl上傳文件?

在他們的API頁面他們有一個在cUrl中的例子,有誰知道如何在C#中實現它?

任何北部都會很感激,因爲我的搜索沒有幫助,甚至在這裏我發現的所有代碼看起來都很像常規上傳。

這是我需要工作在C#的例子:

Upload File to Container 
curl -X PUT -T screenies/hello.jpg -D - \ 
-H "ETag: 805120e285a7ed28f74024422fe3594" \ 
-H "Content-Type: image/jpeg" \ 
-H "X-Auth-Token: fc81aaa6-98a1-9ab0-94ba-aba9a89aa9ae" \ 
-H "X-Object-Meta-Screenie: Hello World" \ 

https://storage.clouddrive.com/v1/CF_xer7_343/ 
images/hello.jpg 

HTTP/1.1 201 Created 
Date: Thu, 09 July 2009 17:03:36 GMT 
Server: Apache 
Content-Length: 0 
ETag: 805120e285a7ed28f74024422fe3594 
Content-Type: text/plain 

只是要清楚,我不想讓任何人做我的工作對我來說,我只是需要一些教程或北方的我說。

謝謝。

回答

1

你可以使用任何HttpWebRequest發送PUT請求到服務或較新的HttpClient API

請參見下面的樣本。

var client = new HttpClient(); 
client.DefaultRequestHeaders.Add("X-Auth_User", "your_username"); 
client.DefaultRequestHeaders.Add("X-Auth-Key", "your_api_key"); 

client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("image/pjpeg")); 

var bytes = File.ReadAllBytes(imagePath); 
var ms = new MemoryStream(bytes); 

client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("image/pjpeg")); 
var content = new StreamContent(ms); 


var response = client.PutAsync("YOUR_RACKSPACE_URI", content); 
+0

所以我會定期發送文件,只使用PUT作爲請求方法? – eestein

+0

我不確定rackspace雲文件是如何工作的,但我想他們會進行某種認證,然後才能上傳。 – scartag

+0

他們這樣做,我知道我必須使用NetworkCredentials。但我只是想確認它會定期上傳,對吧?我只是在尋找HttpClient,並看到它的WCF,它是否適用於非WCF? – eestein

相關問題