ここでは、RestSharpを使用してRackspaceRestfulAPIを使用しています。ドキュメントにはリクエストの作成方法が示されていますが、データソース(ラックスペースにアップロードするファイル)をどこで指定する必要があるのかわかりません。
PUT /<api version>/<account>/<container>/<object> HTTP/1.1
Host: storage.clouddrive.com
X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb
ETag: 8a964ee2a5e88be344f36c22562a6486
Content-Length: 512000
X-Object-Meta-PIN: 1234
これが私がリクエストを作成する方法です:
string cloudPath = MainContainerName + "/" + file + "." + "wav";
string localPath = Path.Combine(System.Web.HttpContext.Current.Server.MapPath("~/Audio/Clean"), file + ".wav");
byte[] data = System.IO.File.ReadAllBytes(localPath);
RackUserAuthToken authUser = CloudLib.RackAuth.AuthenticateUser(userName, userPassword);
//Request
var containers = new RObject();
string svAddress =ConfigurationManager.AppSettings["RackSpaceStorage"];
var restClient = new RestClient();
restClient.BaseUrl = svAddress;
var request = new RestRequest(cloudPath, Method.PUT);
request.AddHeader("X-Auth-Token", authUser.AuthToken);
//request.AddHeader("ETag", localPath);
request.AddHeader("Content-Length",data.Length.ToString());
request.RequestFormat = DataFormat.Json;
var response = restClient.Execute(request);
応答は次のとおりです。
[{
"bytes": 0,
"content_type": "audio\/x-wav",
"hash": "d41d8cd98f00b204e9800998ecf8427e",
"last_modified": "2012-08-29T17:21:23.423150",
"name": "newTest.wav"
}]
したがって、ファイルは作成されますが、サイズが0バイトであるため、ファイルには何もありません。
どんな助けでも大歓迎です。