gpt4 book ai didi

asp.net - 每个用户多个 PDF 文件的 Azure DocumentDB 与 Blob 存储

转载 作者:行者123 更新时间:2023-12-05 09:20:46 25 4
gpt4 key购买 nike

我正在开发我的第一个应用程序,作为一个学习项目,几乎可以做所有事情:

  • 客户端前端(角度)
  • 后端(OWIN 自托管、ASP.NET Web Api 2)
  • 数据库和托管(Azure 部署)

到目前为止,这是一个学习过程,我已经在我的应用程序中使用 token 完成了登录/注册授权,但正在使用身份框架和 Azure SQL DB 存储我的用户凭据(存储在为我创建的 dbo.AspNetUsers 表下) )。

为了配合我的用户表,我希望有一个表来实际存储与我的用户关联的元数据,在我的应用程序案例中:

  • Credit Card Information

  • PDF files (in BLOB format, but multiple files associated with each account) These BLOB files are created when they upload a PDF and turned back into a PDF later when they download them.

我在 Azure 门户上看到有一个文档 NoSQL 数据库以及 BLOB 存储。我想知道是否可以将信用卡信息添加到现有的 AspNetUsers 表中,这可以简化我只需处理将 PDF 数据单独存储在单独的表中的问题。

我也不确定该表的结构,因为一个用户可以拥有多个 PDF 文件。我的业余知识认为,也许拥有一个键值数据库可能会更好,格式如下:

  Key-UserName            Value- JSON object of BLOB's with Id's.

我认为,对于检索代表 PDF 的 BLOB 的 PDF 表,如果我可以将 ID 与每个条目相关联并计算出一个 JSON 对象,那么最好检索所有这些字段,我可以添加任意数量的字段查询,但不确定。

显然这还为时过早,我只是在寻找资源和经验而不是直接的答案。

最佳答案

I wish to know if maybe I can add credit card information to my already existing AspNetUsers tables which could simplify me only having to deal with storing the PDF data in a seperate table by itself.

我不确定您是否可以在此表中添加一列,但实际上,我不会将用户的信用卡信息存储在应用程序数据库中。如果可能的话,我会使用第三方支付处理器并将我的解决方案与其集成,而不是自己存储信用卡信息(我知道有点偏离主题的评论:))。

现在谈到有关存储 PDF 的其他问题,我建议使用 Azure Blob 存储而不是 DocumentDB。我在这里概述了一些原因:Create a cloud storage app with ASP.NET and Azure 。我能想到的其他原因是:

  • 虽然您确实可以使用 DocumentDB 将文件存储为附件,但附件的大小有限制(上次我检查为 2MB)。对于 blob 存储,此限制为 200GB。
  • 您无法直接从 DocumentDB 流式传输附件内容。您首先需要在应用程序中获取内容,然后流式传输内容,但是使用 Blob 存储,您可以直接流式传输内容。

就解决方案而言,您可以采取两种方法:

  1. 创建附件。实际上,它是一个具有复合主键的简单表 - 用户 ID + Blob Url。每当用户在 Blob 存储中上传文件时,您都会获得一个 Blob URL。然后,您可以将其与其他一些信息(例如文件名、上传日期等)一起存储在该表中。如果您想查询数据,例如,这种方法会很有效。按时间倒序排列文件。
  2. 创建容器/用户。在这种情况下,用户上传的所有文件都位于容器中。请参阅上面的链接了解更多详情。在这种情况下,当您想要显示用户上传的文件时,您只需列出分配给该用户的容器中的 blob 即可。但请记住,如果用户上传的文件少于 5000 个,则此方法会很有效,因为对容器中的 blob 列表的一次调用最多只能返回 5000 条记录。另请注意,blob 存储是一种简单的对象存储,不具备查询功能。

关于asp.net - 每个用户多个 PDF 文件的 Azure DocumentDB 与 Blob 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36274419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com