# huawei-obs-server

华为云OBS文件上传工具库，用于处理文件的上传

## 特点

- 文件在大于5M时，自动使用分片上传，否则直接上传。

## 安装

```bash
pnpm install huawei-obs-server
```

## 使用

### 初始化配置

```js
import huaweiObsServer from 'huawei-obs-server'

/**
 * getToken不传就是自动去取cookie中的“Authorization-Token”字段（建议还是传递）
 */
huaweiObsServer.config({
  getToken: () => {
    return '用户的token'
  },
  fileSplitThreshold: 1024 * 1024 * 5
})
```

### 执行分片上传

```javascript
import huaweiObsServer from 'huawei-obs-server'

// 所需上传的文件
const sourceFile = new File(['hello world'], 'hello.txt', { type: 'text/plain' })

// 执行分片上传
const uploadContext = huaweiObsServer.create({
  sourceFile: sourceFile,
  onProgress: (event) => {
    console.log(`Upload progress: ${event.percent}%`)
  },
  onSuccess: ({ fileInfo }) => {
    console.log('Upload success:', fileInfo)
  }
})

// 取消分片上传
uploadContext.abort()
```

## 方法

### huaweiObsServer.config

配置`huaweiObsServer`全局配置，在项目的**入口文件**进行配置

#### 参数

1. 全局配置
   - `getToken`：当前用户的`token`值，会携带在每个请求的`headers`中。如何不传递，默认会从取`cookie`中的`Authorization-Token`字段

### huaweiObsServer.create

创建一个文件上传实例

#### 参数

1. 需要上传的文件

2. 上传文件的配置选项

   - `onStart`：上传开始回调
   - `onProgress`：上传进度回调
   - `onSuccess`：上传成功的回调
   - `onError`：上传失败选项
   - `onAbort`：取消上传回调
   - `onFinally`：上传结束回调，无论成功或失败都会触发
