当前位置: 首页 > 知识库问答 >
问题:

REST API Google Drive多部分上传(C++Builder)

慎弘化
2023-03-14

我试图将文件上载到Google Drive by REST API guide(元数据+媒体),但收到响应错误:“媒体类型'multipart/related;boundary=foo_bar_baz'不受支持。有效媒体类型:[/]”

RESTResponseDataSetAdapter1->AutoUpdate = false;
RESTRequest1->Params->Clear();
RESTRequest1->ClearBody();
RESTRequest1->Resource = L"";
RESTRequest1->Method = rmPOST;
RESTClient1->BaseURL = L"https://www.googleapis.com/upload/drive/v3";
RESTRequest1->Resource = L"/files?uploadType=multipart";

RESTClient1->ContentType = L"multipart/related; boundary=foo_bar_baz";

UnicodeString Boundary = L"foo_bar_baz";
UnicodeString Body = L"";
RESTRequest1->Params->AddItem();
RESTRequest1->Params->Items[0]->Kind = pkHTTPHEADER;
RESTRequest1->Params->Items[0]->name = L"Content-Type";
RESTRequest1->Params->Items[0]->Value = L"multipart/related; boundary=" + Boundary;
// RESTRequest1->Params->Items[0]->Value = "application/json; charset=UTF-8";
// RESTRequest1->Params->AddItem();
// RESTRequest1->Params->Items[1]->Kind = pkHTTPHEADER;
// RESTRequest1->Params->Items[1]->name = L"Content-Length";

Body = (UnicodeString)sLineBreak + L"--" + Boundary + sLineBreak;
Body = Body + L"Content-Type: application/json; charset=UTF-8" + sLineBreak + sLineBreak;
Body = Body + L"{\"name\":\"test.json\"}" + sLineBreak + sLineBreak;
Body = Body + L"--" + Boundary + sLineBreak;

Body = Body + L"Content-Type: application/json" + sLineBreak + sLineBreak;
Body = Body + L"{\"test\":\"test\"}" + sLineBreak;
Body = Body + L"--" + Boundary + "--";

// RESTRequest1->Params->Items[1]->Value = IntToStr((__int64)Body.Length()*sizeof(Body));
RESTRequest1->AddBody(Body, TRESTContentType::ctMULTIPART_RELATED);

暂时还没有答案

 类似资料:
  • 我试图用python写的lambda (aws)完成多部分上传。下面是我正在使用的代码。大约有120个部件,总大小为30GB。下面的操作似乎没有在5分钟内完成,因此lambda关闭,上传似乎没有完成。S3提供异步多部分上传功能吗?我相信这将确保文件得到合并,不管lambda关闭。

  • 有人知道如何在中使用吗。Net 4.5与上传? 我在网上找不到任何例子。

  • 我正在Spring controller中努力实现多部分文件上传。我读过很多问题,谷歌,但似乎什么都不管用。 我明白了 我的BE控制器: FE,angularJS: HTML: 还有应用程序。属性包括: 更新: 当我按照@Byeon0gam的建议从我的控制器中删除@RequestParam时,我不再会遇到这个错误,但是我的文件在控制器中是空的。虽然在FE服务中,如我所见,它不是空的:

  • 我有一个windows服务,正在上传一个多部分数据表单在C#。它上传了一个csv,其中包含身份验证变量,形式如下:一个密钥、一个上下文和一个UUID。变量是在自定义标记类中设置的。每次我尝试上传,我得到一个403错误。 在我的开发过程中,我创建了自己的S3 bucket,并添加了能够成功上传文件的NuGet AWS S3类。现在我上传到第三方桶,我不断得到一个403错误。谢了!

  • 我试图创建一个页面,用户可以张贴图像及其细节。现在,当我测试来自postman的spring boot服务时,我能够成功地在服务中获取文件。当我试图从angular5中做同样的事情时,多部分文件在服务中没有被识别,并且总是得到空数组。 我的角服务代码如下 } 我已经尝试添加标头,如multipart/form-data,并将其设置为un定义。无论哪种方式,我都收到了错误。在发布到这里之前,我已经广

  • 我正在使用 Amazon S3 分段上传,我读到您可以并行上传部分文件。但是,通过查看文档,我发现亚马逊对上传的文件部件的响应不包含部件号。所以我的问题是,如果我异步上传文件的第1部分和文件的第2部分,那么我检查来自亚马逊的响应,我如何知道响应是引用文件的第1部分还是第2部分? 下面是一个请求和响应的示例。