上传模块并不直接处理文件上传,建议直接使用七牛的客户端 SDK。 本模块提供了获取七牛云上传凭证的接口,待获取到上传凭证后,即可使用七牛的客户端 SDK 进行文件上传。
使用七牛的客户端 SDK 进行文件上传
import * as qiniu from "qiniu-js"import type { Config } from "qiniu-js/esm/upload"import type { ISubscriptionLike } from "qiniu-js/esm/utils"import { createClient } from "@choiceform/core-ai-sdk"const client = createClient({ ... })const uptoken = await client.upload.uptoken()for (const file of files) { const extra = { fname: file.name, mimeType: file.type } const config: Config = { forceDirect: true, debugLogLevel: "OFF" } const observable = qiniu.upload(file, null, uptoken, extra, config) // subscription 可以保存起来,之后调用 `subscription.unsubscribe()` 可以取消文件上传 // 对于多个文件,建议保存一个 file: subscription 的映射关系,可以指定取消上传的目标文件 const subscription = observable.subscribe({ next(value) { console.info("%cUploading: ", "color: #996", value) }, error(err) { console.error("%cUploading failed: ", "color: #996", err) }, complete(value) { console.info("%cUploading complete: ", "color: #996", value) }, })} 复制
import * as qiniu from "qiniu-js"import type { Config } from "qiniu-js/esm/upload"import type { ISubscriptionLike } from "qiniu-js/esm/utils"import { createClient } from "@choiceform/core-ai-sdk"const client = createClient({ ... })const uptoken = await client.upload.uptoken()for (const file of files) { const extra = { fname: file.name, mimeType: file.type } const config: Config = { forceDirect: true, debugLogLevel: "OFF" } const observable = qiniu.upload(file, null, uptoken, extra, config) // subscription 可以保存起来,之后调用 `subscription.unsubscribe()` 可以取消文件上传 // 对于多个文件,建议保存一个 file: subscription 的映射关系,可以指定取消上传的目标文件 const subscription = observable.subscribe({ next(value) { console.info("%cUploading: ", "color: #996", value) }, error(err) { console.error("%cUploading failed: ", "color: #996", err) }, complete(value) { console.info("%cUploading complete: ", "color: #996", value) }, })}
获取七牛云上传凭证
可选
可传入的选项请点击:https://developer.qiniu.com/kodo/1206/put-policy
上传模块并不直接处理文件上传,建议直接使用七牛的客户端 SDK。 本模块提供了获取七牛云上传凭证的接口,待获取到上传凭证后,即可使用七牛的客户端 SDK 进行文件上传。
示例
使用七牛的客户端 SDK 进行文件上传