这些是本文https://developer.amazon.com/public/apis/experience/cloud-drive/content/nodes
中的内容我想使用此解释来上传视频
上传文件 上传文件内容及其元数据信息。
POST:{{contentUrl}} / nodes?suppress = {suppress}
抑制:(可选)
重复数据删除:禁止在上传时检查重复项 身体参数:
多表格部分
--------- metadata ------------
name(必填):文件名。最多256个字符。 善意(必填):"文件" 标签(可选):索引的额外信息。例如,值可以是" PHOTO" properties(可选):要为文件添加的属性列表。 parent(可选):父ID列表。如果未提供父文件夹,则该文件将放在默认的根文件夹中。 ---------内容------------
文件字节
示例请求
POST / cdproxy / nodes?localId = testPhoto HTTP / 1.1 主持人:content-na.drive.amazonaws.com 授权:持票人 AtzA的| IQEBLjAsAhReYeezFcFdYzqrFOJGv3EG
---- WebKitFormBoundaryE19zNvXGzXaLvS5C 内容处理:表格数据;命名="元数据"
{"名称":" fooo.jpg""种类":" FILE"} ---- WebKitFormBoundaryE19zNvXGzXaLvS5C 内容处理:表格数据;命名="内容&#34 ;; 文件名=" db5df4870e4e4b6cbf42727fd434701a.jpg" 内容类型:image / jpeg
---- WebKitFormBoundaryE19zNvXGzXaLvS5C
cURL请求:
卷曲-v -X POST - 形成 '元数据= {"名称":" testVideo1""种类":" FILE"}' - 形成 ' content=@sample_iTunes.mp4' ' https://content-na.drive.amazonaws.com/cdproxy/nodes?localId=testVideo1&suppress=deduplication' - 标题"授权:持票人 AtzA的| IQEBLjAsAhQ5zx7pKp9PCgCy6T1JkQjHHOEzpwIUQM"
我在c#中编写了以下代码 // FileName 1:来自计算机的文件 // FileName 2:要在亚马逊云上命名的文件。
if (AccessCode == null)
{
return ;
}
WebRequest request = WebRequest.Create(EndPointUrl+"//+&suppress=deduplication'");
request.Method = "POST";
string code = "Bearer " + AccessCode;
request.Headers.Add("Authorization", code);
string postData =@"Content-Disposition: form-data; name=""metadata"" {""name"":"""+FileName1+@""",""kind"":""+FILE""}
Content-Disposition: form-data; name=""content"";
filename="""+FileName2+@"""
Content-Type: video/wmv";
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
WebResponse response = request.GetResponse();
Console.WriteLine(((HttpWebResponse)response).StatusDescription);
dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
Console.WriteLine(responseFromServer);
reader.Close();
dataStream.Close();
response.Close();
问题是我无法正确翻译。它给出了404错误。
{" message":"资源不存在。"}
请帮助我理解它。
答案 0 :(得分:1)
它是一个正常的multipart/form-data
POST请求,第一个参数值是Stringified
JSON对象,第二个是图像文件。
请查看:Upload files with HTTPWebrequest (multipart/form-data)
然后你可以
NameValueCollection nvc = new NameValueCollection();
nvc.Add("metadata", "{\"name\":\"fooo.jpg\",\"kind\":\"FILE\"}");
HttpUploadFile("THE_URL_HERE", @"C:\test\fooo.jpg", "content", "image/jpeg", nvc);