Estoy intentando transmitir imágenes y videos desde mi depósito S3 a mi navegador canalizando la transmisión a través de Express. Tengo la transmisión funcionando, pero aunque funciona en el navegador, sigo recibiendo errores de NoSuchKey cada vez que hago la solicitud.
app.get("/:key", async (req, res) => { s3.getObject({Bucket: "my-bucket", Key: req.params.key}, (err, data) => { if (err){ console.log("error: ", err) } else { console.log("data: ", data) res.set('Content-Type', data.ContentType) res.set('Content-Length', data.ContentLength) res.status(200) let rs = require('stream').Readable.from(data.Body) rs.pipe(res) } }) // try { // s3.getObject({Bucket: "my-bucket", Key: req.params.key}).promise().then( // (data) => { // console.log("data: ", data) // res.set('Content-Type', data.ContentType) // res.set('Content-Length', data.ContentLength) // res.status(200) // let rs = require('stream').Readable.from(data.Body) // rs.pipe(res) // }, // (err) => { // console.log("error: ", err) // } // ) // } // catch(err){ // console.log(err) // } })Intenté usar promesas con el código comentado con el mismo resultado.
producción:
error: NoSuchKey: The specified key does not exist. at Request.extractError (C:\my_path\node_modules\aws-sdk\lib\services\s3.js:710:35) ...