本页记录的是
@squarecloud/blob v4。正从 v3 升级?请阅读 v3 → v4 迁移指南。@squarecloud/blob 是 Square Cloud Blob Storage 的官方 JavaScript SDK。它覆盖了每一个 Blob API endpoint 以及 S3 网关。
要求
- Node.js 20 或更新版本,或任何现代浏览器。SDK 只使用
fetch、FormData和Blob。 - 同时提供 ESM 和 CommonJS,没有任何运行时依赖。
@aws-sdk/client-s3是一个可选的对等依赖,仅在调用s3()时需要。
安装
- npm
- yarn
- pnpm
- bun
创建客户端
示例从环境变量SQUARECLOUD_API_KEY 读取密钥。请在运行示例的终端中设置它:
- macOS / Linux
- Windows (PowerShell)
- ESM / TypeScript
- CommonJS
stats() 会读取你的用量:
构造函数
凭据
凭据会原样放入Authorization 请求头发送,不带 Bearer 前缀。
无法配置的内容
maxRetries 是唯一的选项。客户端不接受:
- 基础 URL。 它固定为
https://blob.squarecloud.app/v1/。 - 自定义
fetch。 请求使用全局fetch。 - 超时或
AbortSignal。 调用会持续到fetch等待结束为止,且无法取消。 - 自定义请求头。
方法
每个方法都返回纯数据(没有类),s3() 除外,它返回一个 S3Client。选项和结果使用 API 自身的字段名,大多为 snake_case(security_hash、expires_at),因此 Blob API 参考可直接适用。
该包还导出了
SquareCloudBlobError、BlobErrorCode 类型以及所有选项和结果类型(PutOptions、PutResult、ListedObject、ObjectInfo、Share、Rule……)。参见错误。
对象 ID
每个对象都由一个不透明的 ID 标识,例如公开对象为pub/...,私有对象为 prv/...。
- 完全按返回的原样存储 ID。 切勿手动构建 ID,也不要解析它。
- 更改
private或expire会改变 ID。 请始终用update()返回的 ID 替换你存储的 ID。 - 使用响应中的
url,而不是自行构建 URL。私有对象的url: null:请通过downloadUrl()或分享获取链接。
后续步骤
上传
上传文件并生成上传令牌。
Blob API 快速入门
基础 URL,以及用 curl 完成第一次上传。
Blob Storage 套餐
每个套餐包含的内容。

