【问题标题】:Google Cloud Storage Get Metadata Information of Clicked ImageGoogle Cloud Storage 获取点击图片的元数据信息
【发布时间】:2021-01-21 01:52:15
【问题描述】:

我有一个 Node.js 后端 React 前端应用程序。在我的 React 应用程序中,我列出了从 Google Cloud Storage 获取的几张图像,当单击图像时,将打开一个弹出页面,在弹出页面中,我想以更大的比例显示单击的图像、元数据信息和位置信息(取自ip)。

我可以获得任何图像(一张图像)的元数据信息。获取一张图片元数据信息的代码:

const express = require("express");
const cors = require("cors");
// Imports the Google Cloud client library
const { Storage } = require("@google-cloud/storage");

const bucketName = "myBucket";
const filename = "detected/0.jpg";

const storage = new Storage();

const app = express();

app.get("/api/metadata", cors(), async (req, res, next) => {
  try {

    // Gets the metadata for the file
    const [metadata] = await storage
      .bucket(bucketName)
      .file(filename)
      .getMetadata();

    const metadatas = [
      {id: 0, name: `Date: ${metadata.updated.substring(0,10)}, Time: ${metadata.updated.substring(11,19)}`},
      {id: 1, name: metadata.contentType}
    ];

    res.json(metadatas);
  } catch (e) {
    next(e);
  }
});

const port = 5000;

app.listen(port, () => console.log(`Server started on port ${port}`));

但是,我不知道如何获取点击图像的元数据信息。如何获取被点击元素的元数据?

【问题讨论】:

    标签: node.js reactjs google-cloud-storage metadata


    【解决方案1】:

    当您在 React 前端显示这些图像时,每个图像都会有一个 filename 关联。 现在 onClick 的任何 Image 将此 fileName 发送到后端 API 以获取元数据。

    在你的app.get("/api/metadata", cors(), async (req, res, next) => { 您应该从req 请求对象中提取fileName,作为参数或查询字符串,并使用fileName 而不是const filename = "detected/0.jpg";

    【讨论】:

    • 如你所说,我将尝试先从前端发布请求到后端,然后获取请求。我不明白从“req”对象中提取“fileName”。你能解释一下这里的提取是什么意思吗?
    • 获取元数据的 api 是 get。您为 api 共享的处理程序代码引用了 fileName。目前根据您的代码,此 filename 是一个常量值。要实现为单击的图像动态获取元数据的功能,您应该将文件名作为请求参数传递给您的 get 请求。然后读取该参数以获取请求的文件名。提取express中的request params,可以看:stackabuse.com/get-query-strings-and-parameters-in-express-js/….
    • 我会看看你分享给我的网站
    • 我的网址不包含页面、限制等任何参数。这会影响我的结果吗?因为,您分享的网站包含一些参数(页面和限制),作者可以进行此操作。
    猜你喜欢
    • 2021-01-05
    • 1970-01-01
    • 2020-04-08
    • 2013-11-06
    • 1970-01-01
    • 2018-10-23
    • 1970-01-01
    • 2015-01-15
    相关资源
    最近更新 更多