首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Google Drive API

使用Google Drive API
EN

Stack Overflow用户
提问于 2018-02-09 19:19:21
回答 2查看 2.6K关注 0票数 4

我正在设置数据采集器,将数据写入excel文件,然后我想将这些文件上传到我自己的驱动器帐户中的文件夹中。这将通过一个调度程序每天完成一次,所以这里的目标是完全自动化的。

我正在看this快速入门指南,它经历了Oauth2的过程。我不想访问任何其他用户数据,只想把我创建的文件往上推。这可能是一个愚蠢的问题,但我必须经历oAuth过程,而不只是使用api密钥和密钥吗?

在第4步中,它显示为The first time you run the sample, it will prompt you to authorize access:,例如,如果它在EC2实例上运行,我该如何执行此操作

谢谢

EN

回答 2

Stack Overflow用户

发布于 2018-02-09 19:26:39

如果你只打算访问你自己的账户,那么你应该看看service account。服务帐户是预先授权的,所以你不会得到一个窗口弹出要求访问。我不是一个node.js程序员,所以我不能帮助太多的代码。我没有看到用于google drive的node.js的服务帐户示例,您可以在其他apis中找到一个,或者查看客户端库示例examples

服务帐户不是您,它是一个虚拟用户,您可以使用服务帐户的电子邮件地址,并与服务帐户共享您个人google drive帐户上的文件夹或文件,它将拥有访问权限。read more about service accounts

票数 2
EN

Stack Overflow用户

发布于 2018-02-11 03:55:12

我想我应该发布我是如何让它工作的(我需要检查文件是否存在,然后再替换它,但那是后来的事),首先@DalmTo和@JoeClay有很好的观点,所以我进一步研究了它们,发现了this blog post

代码语言:javascript
复制
# index.js
const google = require('googleapis');
const fs = require('fs');
const config = require('./creds.json');
const drive = google.drive('v3');
const targetFolderId = "123456789"


const jwtClient = new google.auth.JWT(
  config.client_email,
  null,
  config.private_key,
  ['https://www.googleapis.com/auth/drive'],
  null
);

jwtClient.authorize((authErr) => {
  if (authErr) {
    console.log(authErr);
    return;
  }


const fileMetadata = {
  name: './file.txt,
  parents: [targetFolderId]
};

const media = {
  mimeType: 'application/vnd.ms-excel',
  body: fs.createReadStream('./file.txt' )
};

drive.files.create({
  auth: jwtClient,
  resource: fileMetadata,
  media,
  fields: 'id'
}, (err, file) => {
  if (err) {
    console.log(err);
    return;
  }
    console.log('Uploaded File Id: ', file.data.id);
  });
});

正如我之前所说的,我的下一步是检查文件是否存在,以及是否替换了它

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48704689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档