【问题标题】:How to get text data from google drive files?如何从谷歌驱动文件中获取文本数据?
【发布时间】:2014-03-18 06:44:43
【问题描述】:

我想索引我的谷歌驱动器数据,因为我需要从我的谷歌驱动器文件中获取文本内容。我正在使用 List api 来获取文件,并且我能够获取标题和 mimetype 以及所有数据,但我无法使用此 api 从那里获取全文或内容或文本数据。我只得到以下内容。

{ 种类:'驱动器#file',

   id: '0BwWXsHdw22TDMlJyTTZfbnM1cnFBTXdDWlFteEg1dFB3RFN3',
   etag: '"KYLl3b7q6n8KW2kbVvK9NFUdVkc/MTM5NDY4OTY1NDM0MA"',
   openWithLinks: [Object],
   iconLink: 'https://ssl.gstatic.com/docs/doclist/images/icon_10_word_list.png',
   thumbnailLink: https://lh4.googleusercontent.com/iyq9t99atUoaWlf7N75mSalyoh5gvK6YAeDIx5iAqJZFtX4iMIouOI4VGySCqsEYFXC3f9v9aqSqUolS5IZ7YeQ=s220',
   title: 'OpenVPN Client Configuration on Ubuntu.docx',
   mimeType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
   labels: [Object],
   createdDate: '2014-01-24T12:58:38.000Z',
   modifiedDate: '2014-03-13T05:47:34.340Z',
   modifiedByMeDate: '2014-03-13T05:47:34.340Z',
   lastViewedByMeDate: '2014-03-13T05:52:37.684Z',
   parents: [Object],
   userPermission: [Object],
   originalFilename: 'OpenVPN Client Configuration on Ubuntu.docx',
   fileExtension: 'docx',
   md5Checksum: 'ecd71a2b9315ed67299003dacda8c3f0',
   fileSize: '290094',
   quotaBytesUsed: '290094',
   ownerNames: [Object],
   owners: [Object],
   lastModifyingUserName: '******',
   lastModifyingUser: [Object],
   editable: true,
   copyable: true,
   writersCanShare: true,
   shared: false,
   appDataContents: false,
   headRevisionId: '0BwWXsHdw22TDV2RuWlpjWmZzRVp5ZTVSQUJSZ012Mkw4K0hVPQ' } ] }

我也尝试了 .file api,但这个也不起作用。请帮我解决这个问题。

我想用 nodejs 来做。我该怎么做?

【问题讨论】:

  • 您应该指定您的环境(Java、.NET、PHP,...)以获得更具体的帮助。我在 Android/Java 上工作,所以下面的答案取自那里。

标签: google-drive-api


【解决方案1】:

由于某种原因,我在上面的列表中没有看到 downloadUrl 字段。您可以go here 并在底部使用“尝试一下”,以获取恰到好处的请求。在我的基于 java 的代码中,我记得类似于 2 步过程:

1/ 获取列表

Drive  _svc;
FileList _gooLst = _svc.files().list().setMaxResults(MAX_DOWN).setQ(_rqst)
             .setFields("items(id,title,downloadUrl)").execute();

for (File f : _gooLst.getItems()){ 
  f.getId(); 
  f.getTitle(); 
  String foo = f.getDownloadUrl();
}

这是“列表”请求,请注意您应该限制列表中的字段,以免阻塞管道

2/ 从 downloadUrl

获取内容
    InputStream is = _svc.getRequestFactory().buildGetRequest(
                      new GenericUrl(foo)).execute().getContent();     

最后,解析流以获得您的……任何您需要的东西。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-07
  • 1970-01-01
  • 2017-11-27
  • 1970-01-01
  • 2020-01-04
  • 2020-05-21
  • 2017-09-23
相关资源
最近更新 更多