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

Google Drive上传多部分mime base64编码文件W/PowerShell:格式错误的多部分主体错误

郏经纬
2023-03-14

令牌检索都解决了。


--314159265358979323846
Content-Type: application/json; charset=UTF-8

    {
    "description":  "TestCSV",
    "name":  "test-emp.csv",
    "originalFilename":  "test-emp.csv"
}

--314159265358979323846
Content-Transfer-Encoding: base64
Content-Type: application/octet-stream


    c0FNQWNjb3VudE5hbWUsRU1QX05VTQ0KYnNtaXRoLDc3Mzk5Mg0KbHNvbmcsMzM3MTEwDQpnc3Vkbyw2NDkwNTc
--314159265358979323846--

--314159265358979323846
Content-Type: application/json; charset=UTF-8

    {
    "description":  "TestCSV",
    "name":  "csv3.csv",
    "originalFilename":  "csv3.csv"
}

--314159265358979323846
Content-Transfer-Encoding: base64
Content-Type: application/octet-stream


    c2VxLGZpcnN0LGxhc3QNCjEsQW15LEJhcmtlcg0KMixMZWUsU2FsYXphcg0KMyxFc3RlbGxhLEtlbm5lZHkNCg
--314159265358979323846--


Name                           Value                                                                                                                           
----                           -----                                                                                                                           
Authorization                  Bearer ya29.GlxbBiz86xKlRnjzQY2z70vHtWfL4sr28BvX-OKio8PbcEfJ0l7tQgx9btNqMdanYXG_WzSD74WD_15903vn0mYO0G0uI8lez5g77Z_W0gKrIRh_s...
Content-Type                   multipart/related; boundary=314159265358979323846                                                                               
Content-Length                 400                                                                                                                             

我已经读过很多关于这个的文章,并且已经确保在有效负载之前有两个rn。任何指示将非常感谢!

谢谢!

共有1个答案

那弘
2023-03-14

你必须在上传文件后重命名它。

$sourceFile = 'C:\temp\allisv22018201810101009.csv'

$sourceItem = Get-Item $sourceFile

# If uploading to a Team Drive, set this to 'true'
$supportsTeamDrives = 'false'

# Set the file metadata
$uploadMetadata = @{
    originalFilename=$sourceItem.Name
    name=$sourceItem.Name
    description="TestCSV"
}

# Set the upload headers
$uploadHeaders = @{
    Authorization="Bearer $accessToken"
    "Content-Type" = "application/json"
}

# Perform the upload
try {
    $response = Invoke-RestMethod -Uri "https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart" -Method Post -Headers $uploadHeaders -InFile $SourceFile
    $urifile = "https://www.googleapis.com/drive/v3/files/$($response.id)"
    $renameResponse = Invoke-RestMethod -Uri $urifile -Method Patch -Headers $uploadHeaders -Body '{ "name":"HappyFile.csv" }'

如果您成功上传了文件,它将返回$urifile中的值,您可以使用该值重命名文件。

 类似资料:
  • 我目前运行的是spring boot V1.3.0.build-Snapshot和spring V4.2.2.build-Snapshot。 如果我尝试执行多文件上载(通过angular): 我得到了错误: [WARN]org.eclipse.jetty.server.request-java.io.ioException:org.eclipse.jetty.util.multipartInput

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

  • 我想知道是否可以有一个postendpoint来接受包含multipartfile和其他数据的json负载。例如,我的身体对象看起来像: 另一个相关的问题是,在用于上传文件https://spring.io/guides/gs/uploading-files/的springboot文档示例中,文件是请求路径的一部分,而不是有效负载。这对我来说似乎很奇怪,那么有没有一种方法可以将文件绑定到请求体?

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

  • 不知道我还缺了什么。调试时我还发现 getAllowCasualMultiPartParsing()显示为false。看起来tomcat上下文中没有设置多部分配置。我使用的是嵌入式tomcat。

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