node.js / google drive sdk v3:访问webContentLink(和所有图片元数据)

时间:2017-06-04 14:55:41

标签: google-drive-api google-cloud-vision

我在驱动器v3中成功创建了一个图像文件,但无法检索该文件的URI;我期待在成功的response_object中找到它。

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

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

我希望将“官方/正确”的URI作为图片来源提交给Google Cloud Vision API。我想我正在寻找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):

转储request_object

{ “URI”:  { “协议”: “https:” 开头,  “斜线”:真实,  “身份验证”:空,  “主机”:“www.googleapis.com”  “端口”:空,  “主机名”:“www.googleapis.com”  “哈希”:空,  “搜索”: “域= ID&放大器; uploadType =多?”  “查询”: “字段= ID&安培; uploadType =多部分”,  “路径名”: “/上传/驱动器/ V3 /文件”,  “路径”: “?/上传/驱动器/ V3 /文件的字段= ID&放大器; uploadType =多”,  的 “href”: “https://www.googleapis.com/upload/drive/v3/files?fields=id&uploadType=multipart”},  “方法”: “POST”,  “headers”:{“Authorization”:“bearer ya29.GlxfB18oVtG6A3j7cXzSq17-RSmj9-2BlQm4zHD5sPzKkfhRM1FxlxUHc9mxWaka1N2fBiTJun-SYLB8ewuc63XVbUo01q0bS2FiS6iJTq9O1h9FQWfoO5r8E6z_6Q”,  “用户代理”: “谷歌API-的NodeJS客户端/ 0.10.0”, “主人”: “www.googleapis.com”  “传输编码”:“分块”,  “内容类型”:“多部分/相关;  边界= d6cef3f5-2246-5654-ac1f-d00561be5e8a“}  }

转储响应  { “ID”: “0Bw4DMtLCtPMkNERiTnpVNDdQV2c”}

回顾:

  • 如何(在Node.js中)为新创建的Google Drive v3图像文件获取适用于Google Cloud Vision的URI?
  • 如何(在Node.js中)获取新创建的Google Drive v3图像文件的元数据?

非常感谢。

新信息:我尝试过单独的drive.files.get()

                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”: “0Bw4DMtLCtPMkWFdTMUVwY2tRZ2c”, “名称”: “2017-06-04T17:57:42.189Zlovelock.png”, “mime类型”: “图像/ PNG”}

1 个答案:

答案 0 :(得分:1)

使用Files.get并在'字段中指定'要获取的参数webContentLink。它会回归那个。使用文档中的Try-it。

您可以获取的完整元数据列表位于Files resource

出于测试目的,传递fileId here并运行执行。