簡體   English   中英

從 MongoDB 加載圖像緩慢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM