如何通过 Google Drive API (NodeJS) 上传 Google Apps 脚本
How to Upload a Google Apps Script via the Google Drive API (NodeJS)
我正在尝试使用 Google API NodeJS client 将 Google Apps 脚本上传到我的驱动器。我按照文档中的说明进行操作,但是当文件上传到我的驱动器时,我只能将其作为纯文本而不是 Apps 脚本上传。
function uploadAppScript(auth) {
return new Promise(function(resolve, reject) {
var drive = google.drive('v3')
drive.files.create({
auth: auth,
resource: {
name: 'myscript',
mimeType: 'application/vnd.google-apps.script'
},
media: {
mimeType: 'text/plain',
body: fs.createReadStream('src/myscript.gs')
},
}, function(err, result){
... //not relevant
})
})
}
自述文件的 media uploads 部分未指定如何上传 png 以外的任何内容。
如果我将 media
对象中的 mimeType
更改为 text/plain
以外的任何内容,我会收到以下(非信息性)错误:
code: 400,
errors:
[ { domain: 'global',
reason: 'badRequest',
message: 'Bad Request' } ] }
关于如何让 Drive 将其识别为 Apps 脚本而不是纯文本文件的任何想法?还是 NodeJS 客户端出了问题?
所以这显然是 google-api-nodejs-client 的错误,但是库的维护者能够在文档无法帮助我的地方帮助我。以下将允许您将 .gs
文件正确上传到 Google 驱动器:
drive.files.create({
resource: {
name: 'myscript.gs',
mimeType: 'application/vnd.google-apps.script+json'
},
media: {
mimeType: 'application/vnd.google-apps.script+json',
body: JSON.stringify({
files: [
{
source: fs.readFileSync('src/myscript.gs', { encoding: 'utf-8' }),
name: 'myscript',
type: 'server_js'
}
]
})
}
}, function (err, file) {
// ...
});
我正在尝试使用 Google API NodeJS client 将 Google Apps 脚本上传到我的驱动器。我按照文档中的说明进行操作,但是当文件上传到我的驱动器时,我只能将其作为纯文本而不是 Apps 脚本上传。
function uploadAppScript(auth) {
return new Promise(function(resolve, reject) {
var drive = google.drive('v3')
drive.files.create({
auth: auth,
resource: {
name: 'myscript',
mimeType: 'application/vnd.google-apps.script'
},
media: {
mimeType: 'text/plain',
body: fs.createReadStream('src/myscript.gs')
},
}, function(err, result){
... //not relevant
})
})
}
自述文件的 media uploads 部分未指定如何上传 png 以外的任何内容。
如果我将 media
对象中的 mimeType
更改为 text/plain
以外的任何内容,我会收到以下(非信息性)错误:
code: 400,
errors:
[ { domain: 'global',
reason: 'badRequest',
message: 'Bad Request' } ] }
关于如何让 Drive 将其识别为 Apps 脚本而不是纯文本文件的任何想法?还是 NodeJS 客户端出了问题?
所以这显然是 google-api-nodejs-client 的错误,但是库的维护者能够在文档无法帮助我的地方帮助我。以下将允许您将 .gs
文件正确上传到 Google 驱动器:
drive.files.create({
resource: {
name: 'myscript.gs',
mimeType: 'application/vnd.google-apps.script+json'
},
media: {
mimeType: 'application/vnd.google-apps.script+json',
body: JSON.stringify({
files: [
{
source: fs.readFileSync('src/myscript.gs', { encoding: 'utf-8' }),
name: 'myscript',
type: 'server_js'
}
]
})
}
}, function (err, file) {
// ...
});