用途:在 Convex 应用中处理文件上传、存储、提供访问与管理,适用于图片、文档、视频及由 action 生成的文件。
主要能力:Convex 内置文件存储,自动生成用于提供文件的 URL,支持任意文件类型,通过 _storage 系统表提供文件元数据,并与 mutation、action 集成。技能覆盖生成上传 URL、客户端上传、保存文件引用、通过 URL 提供文件、在 React 中展示文件、在 action 中存储生成文件、读取文件元数据、删除文件,以及带预览的图片上传。
使用方式:先获取最新文档,主要参考 https://docs.convex.dev/file-storage、https://docs.convex.dev/file-storage/upload-files、https://docs.convex.dev/file-storage/serve-files,以及 https://docs.convex.dev/llms.txt。典型流程为:用 mutation 调用 ctx.storage.generateUploadUrl() 生成上传地址;客户端 fetch 以 POST 上传并设置 Content-Type,取得 storageId;再用 mutation 将 storageId 与文件名、类型、大小写入自有表;读取时用 ctx.storage.getUrl(storageId) 获取 URL;action 中可用 ctx.storage.store(blob) 存储生成文件;元数据用 ctx.db.system.get(storageId) 读取;删除时先 ctx.storage.delete(storageId) 再删除数据库记录。
适用场景:需要用户上传头像、图片、PDF 等文件,或在服务端生成 PDF、图片后存储并提供访问的 Convex 项目。
限制与注意:资料未提供收费、价格、平台或效果信息。建议在客户端校验文件类型与大小,将文件元数据存入自有表,删除数据库引用时同步删除存储文件,上传时设置正确的 Content-Type;避免使用已弃用的 getMetadata,改用 ctx.db.system.get。除非明确指示,不要运行 npx convex deploy 或任何 git 命令。