节点 js 获取图像 url

node js get image url

我想 1-从我的文件系统中选择一个图像并将其上传到 server/local 2- 使用节点 js 服务取回它的 url 。我设法完成了第 1 步,现在我想获取图像 url 而不是在 res.end 中获取成功消息 这是我的代码

app.post("/api/Upload", function(req, res) {
upload(req, res, function(err) {
    if (err) {
        return res.end("Something went wrong!");
    }
    return res.end("File uploaded sucessfully!.");
});
});

我正在使用 multer 上传图片。

我假设您将图像保存在服务器文件系统上,而不是像 AWS S3 或 Google 云存储这样的存储解决方案,上传后您会在其中获得 url。

由于您将其存储在文件系统中,因此您可以使用唯一标识符(如 uuid 或其他名称)重命名文件。

然后你可以创建一个 GET 路由并在查询或路径参数中请求该 ID,然后读取以该 ID 作为名称的文件并将其发回。

你可以这样做,使用 AWS S3 并且 returns 上传图片的 url

const AWS = require('aws-sdk')

AWS.config.update({
  accessKeyId: <AWS_ACCESS_KEY>,
  secretAccessKey: <AWS_SECRET>
})

const uploadImage = file => {
  const replaceFile = file.data_uri.replace(/^data:image\/\w+;base64,/, '')
  const buf = new Buffer(replaceFile, 'base64')

  const s3 = new AWS.S3()
  s3.upload({
    Bucket: <YOUR_BUCKET>,
    Key: <NAME_TO_SAVE>,
    Body: buf,
    ACL: 'public-read'
  }, (err, data) => {
    if (err) throw err;

    return data.Location; // this is the URL
  })
}

你也可以查看这个 express generator,它有上传图片的路径 AWS S3 https://www.npmjs.com/package/speedbe