概览
构造和选项
逐个方法对照
类型
类型随 SDK 一起提供,并与 API 的字段名保持一致。相对于@squarecloud/api-types 和 v5 类的主要重命名:
错误
- 合成代码已被移除(
RATE_LIMIT_EXCEEDED、PAYLOAD_TOO_LARGE、SERVER_UNAVAILABLE、UNKNOWN_ERROR_<status>):现在会呈现 API 的真实代码(RATE_LIMITED、KEEP_CALM、DAILY_SNAPSHOTS_LIMIT_REACHED、FILE_TOO_LARGE……)。 - 没有响应:
status: 0,带有NETWORK_ERROR(原因位于cause中)或TIMEOUT。没有代码的响应体为UNKNOWN_ERROR,带有真实的status和消息HTTP <status>。 - 对于 API 错误,
instanceof TypeError不再为 true。 - 过期的密钥与未知密钥一样返回 401
ACCESS_DENIED。 ai.chat()的错误(包括身份验证和速率限制)带有小写的 OpenAI 代码(access_denied、rate_limit_exceeded……)。- 被拒绝的
start/stop/restart返回 409,仅带有代码:CONTAINER_ALREADY_STARTED、CONTAINER_ALREADY_STOPPED、CONTAINER_TEMPORARILY_SUSPENDED、CONTAINER_NOT_FOUND、CONTAINER_INSUFFICIENT_DISK_SPACE、CONTAINER_NETWORK_CONFLICT或ACTION_FAILED。
行为变更
- 调用会超时:默认每次尝试 30 秒(v5 没有超时),对于服务器保持连接的调用至少 120 秒。设置
timeoutMs: 0可取消超时。 files.write()将字符串视为内容并以纯文本发送;字节以 base64 发送,对二进制安全,空内容会创建一个空文件(与 Python 和 Go SDK 的传输格式相同)。files.read()请求 base64 并对其解码。- 对不存在的目录调用
files.list()会抛出 404FILE_NOT_FOUND,而不是返回[]。 snapshots.create()在返回 202 时返回{ pending: true },而不是抛出异常。- 字符串结果绝不会是
undefined:当 API 未返回时,setWebhook和resetCredentials("certificate")返回"";deploys.current()返回{}。 realtime()会在连接断开以及收到REALTIME_RECONNECT时重新连接(最多连续 3 次,每 5.5 秒最多打开一次)。- 重试:GET 上的网络错误以及 503
UPLOAD_BUSY/ANALYTICS_BUSY(外加 GET 上的DATABASE_UNAVAILABLE),带有退避。429 永不重试。DATABASE_UNAVAILABLE可能在变更操作已被应用之后到达:请自行重试你的幂等变更操作。 - 空的、
.和..的 ID 会在本地以INVALID_ID失败。 - 值为
undefined、""或false的查询参数不会被发送。
后续步骤
客户端
安装 SDK 并创建客户端。
错误
错误类、重试和速率限制。

