【发布时间】:2022-01-06 05:41:05
【问题描述】:
我正在练习本教程 https://www.youtube.com/watch?v=NZElg91l_ms&t=1234s
它对我来说绝对是一种魅力,但问题是我正在存储产品的图像,我将它们存储在存储桶中,假设我上传了 4 张图片,它们都已上传。 但是当我显示它们时,我在显示列表时遇到拒绝访问错误,并且重复的请求可能会将其检测为垃圾邮件
这就是我试图在我的反应应用程序上获取它们的方式 //其余数据来自mysql数据库(产品名称,价格) //100+ 产品
{ products.map((row)=>{
<div className="product-hero"><img src=`http://localhost:3909/images/${row.imgurl}`</div>
<div className="text-center">{row.productName}</div>
})
}
当它从 db 获取 100 多个产品和从 aws 获取 100 个图像时,它失败了
抱歉这么详细的问题,但简而言之,我如何从我的存储桶中获取所有产品图片
注意我知道我每次调用只能获取一张图片,那么如何在我的场景中一张一张地获取所有图片
//在我的app.js中下载代码
const { uploadFile, getFileStream } = require('./s3')
const app = express()
app.get('/images/:key', (req, res) => {
console.log(req.params)
const key = req.params.key
const readStream = getFileStream(key)
readStream.pipe(res)
})
//s3 文件
// uploads a file to s3
function uploadFile(file) {
const fileStream = fs.createReadStream(file.path)
const uploadParams = {
Bucket: bucketName,
Body: fileStream,
Key: file.filename
}
return s3.upload(uploadParams).promise()
}
exports.uploadFile = uploadFile
// downloads a file from s3
function getFileStream(fileKey) {
const downloadParams = {
Key: fileKey,
Bucket: bucketName
}
return s3.getObject(downloadParams).createReadStream()
}
exports.getFileStream = getFileStream
【问题讨论】:
标签: node.js reactjs amazon-web-services amazon-s3