传统模式云存储
CloudBase JS SDK v3 在传统模式下通过 app.storage.from() 提供云存储文件操作能力。传统模式面向环境内置云存储,上传时传入云存储相对路径,上传成功后返回完整 fileID;下载、删除、签名 URL、文件信息查询等操作建议使用完整 fileID。
提示
传统模式调用云存储相关 API 时,使用的是 云存储 HTTP API 的开放能力。在使用前,请前往 云开发平台/身份认证/权限控制 确认 StoragesHttpApiAllow 的策略管理配置是否符合预期。详细说明请参考 策略管理说明文档。
与 PG 模式云存储的差异
传统模式与 PG 模式 API 的关键差异:
| 维度 | 传统模式 | PG 模式 |
|---|---|---|
| 入口 | app.storage.from() | app.storage.from("bucketId") |
| 路径参数 | cloud:// fileID | Bucket 内对象名,如 user-123/avatar.png |
| 权限模型 | 内置权限 + JSON 安全规则 | PostgreSQL RLS Policy |
| 覆盖默认值 | upsert 默认 true | upsert 默认 false |
| 图片转换 | download() / 签名 URL 支持 TransformOptions | 不支持 |
| 签名 URL 过期时间 | 支持 expiresIn / maxAge(小于 1 拒绝,大于 3600 警告后仍下发) | 支持 expiresIn |
| Bucket 管理 | 不支持 | 支持 createBucket / listBuckets 等 |
| 文件列表 | 不支持 | 支持 list() |
| 流式下载 | 不支持 | download().asStream() |
快速开始
import cloudbase from "@cloudbase/js-sdk";
const app = cloudbase.init({ env: "your-env-id" });
const storage = app.storage.from();
const { data, error } = await storage.upload("images/photo.jpg", file);
if (error) throw error;
const fileID = data.id;
const { data: blob } = await storage.download(fileID);
const { data: signed } = await storage.createSignedUrl(fileID, 3600);
await storage.remove([fileID]);