【问题标题】:How to upload massive number of books automatically to database如何将大量书籍自动上传到数据库
【发布时间】:2020-12-28 21:15:04
【问题描述】:

我有一个客户,他有 13 万本书(约 4 TB),他想要一个网站将它们上传到其中并建立一个在线图书馆。那么,我怎样才能让他自动上传它们或至少每次上传多本书呢?我将使用 Node.js + mysql

【问题讨论】:

  • 当然。也许? “上传”是什么意思?至于什么?为什么不直接克隆驱动器,将其放入服务器并完成?例如,亚马逊之类的服务可以摄取外部驱动器并将其转储到他们的 S3 服务中。
  • 此外,您是要上传书籍的全部内容,还是只是将名称和封面放入数据库?

标签: javascript mysql node.js database


【解决方案1】:

我可能会建议在 MySQL 之上使用对象存储来加速图书索引和检索 - 但这完全取决于您。

HTTP 是一种流协议,有趣的是,节点具有流。

这意味着,当您向节点服务器发送 HTTP 请求时,节点在内部将其作为 处理。这意味着,理论上,您可以将大量书籍上传到您的网络服务器,而一次只在内存中存储一​​小部分。

第一件事是 - 书可能非常大。为了有效地处理它们,我们必须分别处理元数据(姓名、作者等)和内容。

使用类似 express 的框架的一个示例可能是:伪代码

app.post('/begin/:bookid', (Req, Res) => {
    ParseJSON(Req)
    MySQL.addColumn(Req.params.bookid,Req.body.name,Req.body.author)
})

app.put('/upload/:bookid', (Req, Res) => {
   //  If we use MySQL to store the books:
   MySQL.addColumn(Req.params.bookid,Req.body)
   //  Or if we use object storage:
   let Uploader = new StorageUploader(Req.params.bookid)
   Req.pipe(Uploader)
})

如果您需要灵感,请查看 WeTransfer 如何创建他们的 API。他们每天处理大量数据 - 他们的解决方案可能对您有所帮助。

请记住 - 您的客户可能不想使用 Postman 上传他们的书籍。用 Svelte 或 React 为他们构建一个简单的网站。

【讨论】:

    猜你喜欢
    • 2014-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-30
    • 2015-01-02
    • 2021-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多