NodeJS 使用google cloud bucket上传和加载文件的最佳方式是什么?

kadbb459  于 2023-06-29  发布在  Node.js
关注(0)|答案(1)|浏览(109)

我是使用Google Cloud Platform的新手,我需要将照片上传到Google Cloud bucket。我写了下面的代码来上传文件:

const uploadToGCS = async (file, folder) => {
  return new Promise((resolve, reject) => {
    const folderPath = `${folder}/`
    const newFileName = `${folderPath}${Date.now()}-${file.originalname}`
    const blob = bucket.file(newFileName)
    const blobStream = blob.createWriteStream()

    blobStream.on('error', (err) => reject(err))

    blobStream.on('finish', () => {
      const publicUrl = `https://storage.googleapis.com/${bucket.name}/${blob.name}`
      resolve(publicUrl)
    })

    blobStream.end(file.buffer)
  })
}

但是,将此URL保存在数据库中对于在客户端显示照片没有用处。我读过关于签名URL的文章。这能帮到我吗
使用Google Cloud Platform在MERN应用中上传和加载文件的最佳方式是什么?我不确定从bucket中获取Web服务器中的文件,并将其作为响应发送给客户端是否是一种好的做法,或者是否有一种通过URL访问照片的方法,因此当我渲染卡片时,当我设置照片源时,它会有这样的东西:

<div className='mb-3 w-full rounded-lg overflow-hidden' style={{ aspectRatio: '1/1' }}>
  <img
    src={object.photo}
    className='object-cover w-full h-full transform transition-all duration-500 hover:scale-110'
  />
</div>

任何帮助或提示将不胜感激。谢谢你。

5anewei6

5anewei61#

把这个作为评论发布给大家。
您可以通过本指南开始了解上传对象的最佳方法。有许多方法可以使对象公开,也有许多方法可以使bucket中的所有对象公开。阅读所有文档,以便了解每种方法的优点/缺点。

相关问题