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

node.js/谷歌驱动器sdk v3:访问webContentLink(和所有图像元数据)

翁昊乾
2023-03-14

我正在驱动器v3中成功创建一个映像文件,但无法检索该文件的URI;我希望能在success response_对象中找到它。

我确实在response_object中找到了文件ID,我可以用它来构造一个显示图像的URI:

https://drive.google.com/file/d/0Bw4DMtLCtPMkNERiTnpVNDdQV2c/view

我想有一个官方/正确的URI交给谷歌云视觉应用编程接口作为图像来源。我想我正在寻找webContentLink v3文件元数据。我想,更一般地说,我看不到如何获取我刚刚创建的文件的所有元数据(如https://developers.google.com/drive/v3/reference/files所述)。

        var newFileMetadata = {
          'name': unique_file_name,
          description: options.multipart,
          useContentAsIndexableText: false,
          parents: [ file.id ]
        };

        var media = {
          mimeType: 'image/jpg',
          body: fs.createReadStream(options.src_dir + '/' + sourceFile),
          viewersCanCopyContent: true,
          writersCanShare: true
        };

        var request_object = drive.files.create({
            auth: auth,
            resource: newFileMetadata,
            media: media,
            fields: ['id']
            },
            function(err, response) {
              if (err) {
                console.log('drive.files.create error: %s %s', err, response);
                return;
              } else {
                // file create success; get response
                console.log('dump the response\n %s', JSON.stringify(response));
              }
            }
          );  // end of drive.files.create()

控制台输出为(带有cr以便于阅读):

转储请求对象

{“uri”:{“protocol”:“https:,“slashes:”true,“auth:”null,“host:”www.googleapis.com”,“port:”null,“hostname:”www.googleapis.com”,“hash:”null,“search:”?fields=id

转储响应{"id":"0Bw4DMtLCtPMkNERiTnpVNDdQV2c"}

回顾一下:

  • 我如何获得(在Node.js)一个新创建的谷歌云端驱动v3图像文件的谷歌云视觉适当的URI?
  • 我如何获得(在Node.js)新创建的谷歌驱动器v3图像文件的元数据?

非常感谢。

新信息:我尝试了一个单独的驱动器。文件夹。得到()

                drive.files.get({
                  auth: auth,
                  fileId: response.id
                },
                function(err, response) {
                  if (err) {
                  console.log('drive.files.get error: %s %s', err, response);
                  return;
                  } else {
                  // file create success; get properties
                  console.log('get properties\n %s', JSON.stringify(response));
                  }
                });

我确实收到了一些元数据(但不是大图),控制台输出,新上传:

获取属性{“种类”:“驱动器#文件”,“id”:“0BW4DMTLCPMKWFDTMUVWY2TRZ2C”,“名称”:“2017-06-04T17:57:42.189Zlovelock.png”,“mimeType”:“image/png”}

共有1个答案

岳飞航
2023-03-14

使用文件。获取并在“field”参数中指定要获取的webContentLink。它会回来的。使用“从文档中尝试”按钮。

您可以获得的元数据的完整列表可以在文件资源中找到。

出于测试目的,请在此处传递文件ID并运行Execute。

 类似资料:
  • 这段代码对我来说很好,但在可能24小时后,我需要再次进行身份验证过程。我希望这个认证过程只做一次,因为在我的项目中,他们将没有人参与,所以没有人会手动进行认证。任何帮助都将不胜感激。

  • 进入带有服务号凭据的谷歌驱动器api,上传特定用户的文件j********@gmail.com. 我在谷歌开发者API控制台创建我的帐户服务凭据。我添加用户权限j****@gmail.com我授权我的应用j****@gmail.com 但有时候这种信息会失败 这是我的auth代码

  • 我正在使用google drive api来管理多个用户的一些文件。现在我想知道如何将一些文件的所有权转移给另一个用户。

  • 我已经搞清楚了php循环,而且我只知道的路径。 目前,即使只是从google drive静态获取一张图像也是一个开始。只是一些我知道可以做到的事情。谷歌搜索没有任何好的结果,我开始怀疑这甚至是可能的。是我找错人了还是有办法做到这一点。提前谢了。

  • 这里一个问题的答案对我来说非常有效,可以让匿名用户从我的谷歌硬盘上查看图片。 说明如下所示形成url: 其中是Google驱动器中可公开查看的文件的标识符。 这很有效!然而,我上传的图像非常大(兆字节)。我想获得一个低分辨率图像的链接,这样用户在加载我显示这些图像的页面时就不会下载数兆字节的图像。 我尝试了在GET参数“w”、“宽度”、“h”和“高度”上进行定位,并使用了我在谷歌界面其他地方看到的

  • 下面是https://github.com/google/google-api-nodejs-client的代码。 一般问题:刷新令牌实际上如何与访问令牌一起工作? 背景:根据我的解释,每个访问令牌都有一个有限的时间跨度(~1小时)。因此,当用户第一次连接到我的服务器(服务器为用户身份验证提供了机制)时,服务器将收到有限生命期访问令牌和一次性刷新令牌。1小时后,访问令牌过期。 谢了!