Blob就是一份文件数据
你请AI开发上传和查看收据的应用,它回答要使用Blob Storage。只是增加上传按钮,也要懂存储吗?不必亲自编写代码,但应知道文件放在哪里、谁能看。收据与公开宣传图片需要不同的访问规则。
BLOB是Binary Large Object的缩写。入门时,可以理解为作为一份数据保存的照片或PDF。名称里虽然有Large,小文件也能保存。Blob Storage用于保存和提供图片、文档、视频和文本。
在微软Azure中,Storage Account是整个存储资源,Container是归集文件的区域,Blob是其中的单个对象。可以类比为仓库、存放区域和一件物品。
来源:https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blobs-introduction
已经有数据库,为什么还要单独存文件?
DB即数据库,用来整理信息并按条件查找。收据应用要显示上个月的交通费,需要日期、分类和金额;要查看收据原件,需要图片。下表是把这两种职责分开的设计示例。
相当于照片放在保管处,查找信息记在账本里。这并不意味着数据库不能存文件,而是把文件保管与信息查询分开。如果小文件需要与相关数据一起管理,也可以选择存入数据库。
| 收据应用中的数据 | 保存位置 |
|---|---|
| 收据原始照片 | Blob Storage |
| 日期、金额和费用分类 | 数据库 |
| 上传者与文件位置 | 数据库 |
比上传成功更重要的是谁能打开

Private表示读取需要授权;Public表示在允许的范围内无需登录即可读取。公司标志和客户合同不应该放在同一个公开区域。Azure默认禁止匿名访问,并建议在不需要时禁用公开读取。公开读取不等于允许所有人修改或删除文件。
应用有登录页面,与文件本身不公开,是两回事。即使应用要求登录,如果复制文件地址后任何人都能打开,原件仍可能是公开的。
临时分享私有文件时,可以使用SAS,也就是有限的访问授权。例如,链接可以只允许在短时间内读取指定文件。收到该链接的人也能使用其中的权限,因此链接本身也需要保护。
来源:https://learn.microsoft.com/en-us/azure/storage/blobs/anonymous-read-access-configure
https://learn.microsoft.com/en-us/azure/storage/common/storage-sas-overview
修改之前,先让AI检查上传设计
如果你已经在开发应用,可以复制下面的检查请求。这是检查提示词示例,不代表某个应用已经通过安全测试。
检查这个应用的文件上传设计。
暂时不要修改代码或设置。
1. 说明上传的原始文件保存在哪里。
2. 列出数据库保存了哪些文件相关信息。
3. 检查未登录的人能否仅凭普通文件地址打开原件。
4. 检查使用其他账号登录的人是否无法查看我的文件。
5. 检查分享链接是否有有效期和只读限制。
6. 说明上传成功但数据库保存失败时如何处理。
区分实际验证的结果与推测。
不要在回答中暴露密码、存储密钥或可直接访问文件的分享链接。用测试文件确认三个问题
不要使用真实收据或合同,先准备不含个人信息的测试文件。在你管理的应用里,分别退出登录和使用另一个测试账号检查访问。
普通地址被拦截,不代表全部安全性都得到验证。还要确认其他用户不能为你的文件获取分享链接。
入门者不必先学完所有存储功能。先问:存在哪里?谁能看?保存失败怎么办?这三个问题,能帮助你从做出能上传的按钮,走向妥善管理文件的应用。
