gpt4 book ai didi

node.js - 如何使用 Google Drive Node.js 断点续传

转载 作者:太空宇宙 更新时间:2023-11-04 01:52:45 25 4
gpt4 key购买 nike

嘿,由于 Google Drive 正在更改其库,我无法通过基本上传 drive.files.create 上传任何大于 5MB 的文件。文档告诉我,我必须选择可恢复上传。但谷歌驱动器没有提供任何示例代码,而且我在谷歌上找不到任何内容。

也许重要的是要知道我可以使用drive.files.create上传小于5MB的文件

所以认证没有问题。

https://developers.google.com/drive/v3/web/resumable-upload

我写了这个 POST 请求(也不适用于 PUT):

 var fs = require('fs')
var request = require('request')
var file = 'C:\\test\\sample.container'
var uploadUrl = 'https://www.googleapis.com/drive/v3/files?uploadType=resumable'


var stats = fs.statSync(file)
var fileSizeInBytes = stats["size"]


fs.readFile(file, function read(e, f) {
if (e) {
console.log(e)
return;
}




request.post({
url: uploadUrl,
headers: {
'Authorization': 'xxxxxxxxxxxxxxxxxxxxxxx',
'Content-Length': fileSizeInBytes,
'Content-Type': 'application/octet-stream'
},
body: f,
}, function(e, r, b) {
if (e) {
console.log(e)
return;
}

console.log(`
Response: ${ JSON.stringify(r) }
Body: ${ b }
`)

});


});

但我得到的结果是:

<HTML>
<HEAD>
<TITLE>Request Entity Too Large</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Request Entity Too Large</H1>
<H2>Error 413</H2>
</BODY>
</HTML>

如果我使用请求网址代替:<强> https://www.googleapis.com/upload/drive/v3/files?uploadType=resumable

我还收到一条类似的消息作为正文结果:请求太大。

那么有人有一个可以使用可恢复上传或基本上传来上传文件的工作代码吗?或者还有其他上传大文件的方法吗?我愿意接受替代方案!谢谢

最佳答案

在其他 API 客户端(例如 Python 客户端)中,可断点上传是通过更改 MediaFileUpload constructor with the parameter resumable=True 创建的。 。 node.js api 客户端仅位于 alpha 中,因此它可能没有内置对可恢复上传的支持。您可以尝试喂食驱动a stream ,或者简单地扩展该示例 media 参数,例如

media: {
mimeType: 'some mimetype',
body: 'some body',
resumable: true
}

如果 Stream 和上面的 resumable 不起作用,那么您将无法使用 Node.js 客户端库进行可断点上传,而必须直接使用 REST API。

关于node.js - 如何使用 Google Drive Node.js 断点续传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49055157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com