我是使用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>
任何帮助或提示将不胜感激。谢谢你。
1条答案
按热度按时间5anewei61#
把这个作为评论发布给大家。
您可以通过本指南开始了解上传对象的最佳方法。有许多方法可以使对象公开,也有许多方法可以使bucket中的所有对象公开。阅读所有文档,以便了解每种方法的优点/缺点。