Skip to content

uploadBlobViaSignedPut ​

申请 signed-upload-url 后通过 XHR 直传对象存储(原始字节 PUT + 进度)。

前置依赖 ​

依赖参数 ​

参数名类型说明
deps.requestOssSignedUploadUrl(body) => Promise<Payload>申请 signed-upload-url
deps.XMLHttpRequestXMLHttpRequestConstructor浏览器 XHR 构造器

函数签名 ​

typescript
function uploadBlobViaSignedPut(
  input: UploadBlobViaSignedPutInput,
  deps: UploadBlobViaSignedPutDeps,
): Promise<OssSignedPutUploadResult>

参数 ​

参数名类型必填说明
input.fileBlob是待上传文件
input.bucketstring是目标桶
input.pathstring是对象路径
input.contentTypestring否缺省 application/octet-stream
input.upsertboolean否传给 signed-upload-url
input.onUploadProgress(loaded, total) => void否上传进度
depsUploadBlobViaSignedPutDeps是环境依赖

返回值 ​

类型说明
Promise<OssSignedPutUploadResult>publicUrl、path、bucket

工作原理 ​

  1. 调用 requestOssSignedUploadUrl 获取 signedUrl 与 publicUrl。
  2. 使用 putRawSignedUploadWithProgress(注入 XMLHttpRequest)上传文件并报告进度。
  3. 返回 publicUrl、path、bucket。