Skip to content

createOssSignedUploadApi

创建 OSS 签名上传 API 客户端:COS STS 与 signed-upload-url。

前置依赖

依赖参数

参数名类型说明
deps.buildApiUrl(path) => stringAPI 路径拼接
deps.fetchFetchFunction全局 fetch
deps.waitForPendingTokenRefresh() => Promise<void>等待 token 刷新
deps.createAuthRequestInit(init) => RequestInit附加 Authorization
deps.fetchWithAuthRecovery(request) => Promise<Response>401 恢复重试
deps.parseErrorAndThrow(res, ctx?) => Promise<never>非 2xx 错误解析
deps.doFetch<T>(path, options?) => Promise<T>JSON API 请求
deps.buildErrorContext可选错误上下文
deps.reportApiFailure可选可观测性上报

函数签名

typescript
function createOssSignedUploadApi<TContext>(
  deps: CreateOssSignedUploadApiDeps<TContext>,
): OssSignedUploadApi

参数

参数名类型必填说明
depsCreateOssSignedUploadApiDepsAPI 客户端环境依赖

返回值

类型说明
OssSignedUploadApitryRequestCosStsCredentialrequestOssSignedUploadUrlfetchOssSignedUploadUrl

OssSignedUploadApi 方法

方法说明
tryRequestCosStsCredential申请 COS STS;HTTP 400 返回 null
requestOssSignedUploadUrl通过 doFetch 申请 signed-upload-url
fetchOssSignedUploadUrl手动 fetch 并校验 signedUrl / publicUrl

工作原理

  1. STS 与 signed-upload-url 均走 token + 401 恢复。
  2. requestOssSignedUploadUrl 复用 doFetch 自动解包 { data }
  3. fetchOssSignedUploadUrl 在响应缺字段时抛出明确错误。