无法理解 POST 请求格式
Can not understand POST request Format
这些是本文中的几行https://developer.amazon.com/public/apis/experience/cloud-drive/content/nodes
我想使用这个说明上传视频
上传文件
上传文件内容及其元数据信息。
POST : {{contentUrl}}/nodes?suppress={suppress}
抑制:(可选)
重复数据删除:上传时禁用重复检查
Body 参数:
Multi-form部分
------------元数据------------
名称(必填):文件名。最多 256 个字符。
种类(必填):"FILE"
标签(可选):被索引的额外信息。例如,该值可以是 "PHOTO"
properties(可选):要为文件添加的属性列表。
parents(可选):parent ID 列表。如果未提供 parent 文件夹,则文件将放置在默认根文件夹中。
--------内容------------
文件字节数
示例请求:
POST /cdproxy/nodes?localId=testPhoto
HTTP/1.1
主持人:content-na.drive.amazonaws.com
授权:不记名
Atza|IQEBLjAsAhReYeezFcFdYzqrFOJGv3EG
----WebKitFormBoundaryE19zNvXGzXaLvS5C
Content-Disposition: form-data;姓名="metadata"
{"name":"fooo.jpg","kind":"FILE"}
----WebKitFormBoundaryE19zNvXGzXaLvS5C
Content-Disposition: form-data;名字="content";
文件名="db5df4870e4e4b6cbf42727fd434701a.jpg"
Content-Type: image/jpeg
----WebKitFormBoundaryE19zNvXGzXaLvS5C
cURL 请求:
curl -v -X POST --form
'metadata={"name":"testVideo1","kind":"FILE"}' --表格
'content=@sample_iTunes.mp4'
'https://content-na.drive.amazonaws.com/cdproxy/nodes?localId=testVideo1&suppress=deduplication'
--header》授权:不记名
Atza|IQEBLjAsAhQ5zx7pKp9PCgCy6T1JkQjHHOEzpwIUQM
我用c#写了下面的代码
//文件名1:来自电脑的文件
//要在亚马逊云上命名的文件名2:File。
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":"Resource does not exist."}
请帮助我理解它。
这是一个正常的 multipart/form-data
POST 请求,第一个参数值是 Stringified
JSON 对象,第二个是图像文件。
请看一下:
那你可以
NameValueCollection nvc = new NameValueCollection();
nvc.Add("metadata", "{\"name\":\"fooo.jpg\",\"kind\":\"FILE\"}");
HttpUploadFile("THE_URL_HERE", @"C:\test\fooo.jpg", "content", "image/jpeg", nvc);
这些是本文中的几行https://developer.amazon.com/public/apis/experience/cloud-drive/content/nodes
我想使用这个说明上传视频
上传文件 上传文件内容及其元数据信息。
POST : {{contentUrl}}/nodes?suppress={suppress}
抑制:(可选)
重复数据删除:上传时禁用重复检查 Body 参数:
Multi-form部分
------------元数据------------
名称(必填):文件名。最多 256 个字符。 种类(必填):"FILE" 标签(可选):被索引的额外信息。例如,该值可以是 "PHOTO" properties(可选):要为文件添加的属性列表。 parents(可选):parent ID 列表。如果未提供 parent 文件夹,则文件将放置在默认根文件夹中。 --------内容------------
文件字节数
示例请求:
POST /cdproxy/nodes?localId=testPhoto HTTP/1.1 主持人:content-na.drive.amazonaws.com 授权:不记名 Atza|IQEBLjAsAhReYeezFcFdYzqrFOJGv3EG
----WebKitFormBoundaryE19zNvXGzXaLvS5C Content-Disposition: form-data;姓名="metadata"
{"name":"fooo.jpg","kind":"FILE"} ----WebKitFormBoundaryE19zNvXGzXaLvS5C Content-Disposition: form-data;名字="content"; 文件名="db5df4870e4e4b6cbf42727fd434701a.jpg" Content-Type: image/jpeg
----WebKitFormBoundaryE19zNvXGzXaLvS5C
cURL 请求:
curl -v -X POST --form 'metadata={"name":"testVideo1","kind":"FILE"}' --表格 'content=@sample_iTunes.mp4' 'https://content-na.drive.amazonaws.com/cdproxy/nodes?localId=testVideo1&suppress=deduplication' --header》授权:不记名 Atza|IQEBLjAsAhQ5zx7pKp9PCgCy6T1JkQjHHOEzpwIUQM
我用c#写了下面的代码 //文件名1:来自电脑的文件 //要在亚马逊云上命名的文件名2:File。
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":"Resource does not exist."}
请帮助我理解它。
这是一个正常的 multipart/form-data
POST 请求,第一个参数值是 Stringified
JSON 对象,第二个是图像文件。
请看一下:
那你可以
NameValueCollection nvc = new NameValueCollection();
nvc.Add("metadata", "{\"name\":\"fooo.jpg\",\"kind\":\"FILE\"}");
HttpUploadFile("THE_URL_HERE", @"C:\test\fooo.jpg", "content", "image/jpeg", nvc);