Skip to main content
本页记录的是 @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() 时需要。

安装

创建客户端

示例从环境变量 SQUARECLOUD_API_KEY 读取密钥。请在运行示例的终端中设置它:
用第一次调用检查客户端。stats() 会读取你的用量:
它会打印对象数量及其占用的字节数,例如:

构造函数

凭据

凭据会原样放入 Authorization 请求头发送,不带 Bearer 前缀。
切勿将 API 密钥发送到浏览器。请在你的服务器上生成上传令牌,并只将该令牌交给客户端。

无法配置的内容

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 套餐

每个套餐包含的内容。