[英]Slow image loading from MongoDB
我正在創建一個小型 MERN 堆棧應用程序(使用 Atlas 數據庫),用戶可以在其中上傳多個圖像,然后在某種畫廊中查看它們。
目前,我使用 GridFS 上傳圖像。
問題是,當我嘗試從數據庫中獲取單個圖像時,需要花費太多時間才能得到響應:對於 200x200 的小圖片大約需要一秒鍾,而通常需要 50 毫秒或更短的時間。
這是我獲取圖像的途徑:
router.get('/photo/single/:filename', (req, res) => {
const bucket = new mongoose.mongo.GridFSBucket(mongoose.connection.db, {
chunkSizeBytes: 1024,
bucketName: 'uploads'
})
bucket
.openDownloadStreamByName(req.params.filename).pipe(res)
})
如您所見,這里的代碼不多。
那么為什么openDownloadStreamByName
在我的情況下工作如此緩慢? 是因為我正在使用免費的 M0 集群還是我只是在我的路線中遺漏了一些東西? 或者,在 MongoDB 中存儲圖像本身並不是一個好主意(但我沒有看到其他解決方案,因為在我的情況下,圖像的權重可能超過 16MB)?
我放棄了在 MongoDB 中存儲文件的想法。 相反,我在 AWS S3 上創建了一個存儲桶,並且運行良好。
嗨,請使用GridFS在 MongoDB Atlas 中存儲圖像和其他二進制數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.