uploadBlobViaSignedPut
申请 signed-upload-url 后通过 XHR 直传对象存储(原始字节 PUT + 进度)。
前置依赖
依赖参数
| 参数名 | 类型 | 说明 |
|---|---|---|
deps.requestOssSignedUploadUrl | (body) => Promise<Payload> | 申请 signed-upload-url |
deps.XMLHttpRequest | XMLHttpRequestConstructor | 浏览器 XHR 构造器 |
函数签名
typescript
function uploadBlobViaSignedPut(
input: UploadBlobViaSignedPutInput,
deps: UploadBlobViaSignedPutDeps,
): Promise<OssSignedPutUploadResult>参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
input.file | Blob | 是 | 待上传文件 |
input.bucket | string | 是 | 目标桶 |
input.path | string | 是 | 对象路径 |
input.contentType | string | 否 | 缺省 application/octet-stream |
input.upsert | boolean | 否 | 传给 signed-upload-url |
input.onUploadProgress | (loaded, total) => void | 否 | 上传进度 |
deps | UploadBlobViaSignedPutDeps | 是 | 环境依赖 |
返回值
| 类型 | 说明 |
|---|---|
Promise<OssSignedPutUploadResult> | publicUrl、path、bucket |
工作原理
- 调用
requestOssSignedUploadUrl获取signedUrl与publicUrl。 - 使用
putRawSignedUploadWithProgress(注入XMLHttpRequest)上传文件并报告进度。 - 返回
publicUrl、path、bucket。