# nos-uploader

> 文件上传组件

Latest version **1.19.3** (published 2021-04-30) · 0 weekly downloads

## Install

```sh
npm install nos-uploader
pnpm add nos-uploader
yarn add nos-uploader
bun add nos-uploader
```

## Health

**Score 20/100 (F)** — status: abandoned.

Positive: esm support; no vulnerabilities.

Warnings: low downloads; no types.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.19.3 |
| Published | 2021-04-30 |
| First published | 2018-04-16 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Dependencies | 2 |
| Unpacked size | 43.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | azgaga, liushichuan, yaochen, shenyuan, aflyermin, ignous, jeekdong |

## Links

- npm: https://www.npmjs.com/package/nos-uploader
- npm.io page: https://npm.io/package/nos-uploader

## Dependencies (2)

- [jsdoc-babel](https://npm.io/package/jsdoc-babel.md) ^0.3.0
- [jsdoc-to-markdown](https://npm.io/package/jsdoc-to-markdown.md) ^3.0.2

## Recent versions

- 1.19.3 (latest) — 2021-04-30
- 1.19.7 — 2021-01-12
- 1.19.2 — 2020-12-11
- 1.14.15 — 2018-04-16

## README

# nos-uploader

> 文件上传组件

## 文档

https://github.com/NetEase-Object-Storage/nos-javascript-sdk

## QA

为什么不直接用nos-javascript-sdk？

1. 该组件不支持https协议上传
2. nos-javascript-sdk依赖jQuery，并且不是esm格式的

为什么不用其他组件比如http://fex.baidu.com/webuploader/

1. nos那边单个文件最大100MB，如果超过100MB则需要分块上传，用其他组件分块上传会有问题


## 安装

```sh
$ yarn add nos-uploader
```

## API

## Classes

<dl>
<dt><a href="#NosUploader">NosUploader</a></dt>
<dd><p>NosUploader</p>
</dd>
</dl>

## Functions

<dl>
<dt><a href="#addFile">addFile(file, callback)</a> ⇒ <code>void</code></dt>
<dd><p>添加文件</p>
</dd>
<dt><a href="#getFile">getFile(fileKey)</a> ⇒ <code>Obejct</code></dt>
<dd><p>根据fileKey获取指定文件对象</p>
</dd>
<dt><a href="#getDNS">getDNS(bucketname, callback)</a> ⇒ <code>void</code></dt>
<dd><p>查询DNS</p>
</dd>
<dt><a href="#getOffset">getOffset(param, callback)</a> ⇒ <code>void</code></dt>
<dd><p>获取上传断点位置</p>
</dd>
<dt><a href="#uploadTrunk">uploadTrunk(param, trunkData, callback)</a> ⇒ <code>void</code></dt>
<dd><p>上传分片</p>
</dd>
<dt><a href="#pauseUpload">pauseUpload()</a> ⇒ <code>void</code></dt>
<dd><p>暂停上传</p>
</dd>
</dl>

<a name="NosUploader"></a>

## NosUploader
NosUploader

**Kind**: global class  
<a name="addFile"></a>

## addFile(file, callback) ⇒ <code>void</code>
添加文件

**Kind**: global function  

| Param | Type | Description |
| --- | --- | --- |
| file | <code>Element</code> | 需要上传的文件 |
| callback | <code>function</code> | 成功回调函数  	回调函数中的参数包括：      fileObj: 文件对象 			文件对象中包含的属性: 				fileKey {String} 文件名与文件大小的MD5值 				file {File} 文件对象 				fileName {String} 文件名 				status {Number} 文件状态（ 0 未上传  1 正在上传  2 已上传） 				progress {Number} 上传进度（保留两位小数的百分比） |

<a name="getFile"></a>

## getFile(fileKey) ⇒ <code>Obejct</code>
根据fileKey获取指定文件对象

**Kind**: global function  
**Returns**: <code>Obejct</code> - 文件对象  

| Param | Type | Description |
| --- | --- | --- |
| fileKey | <code>String</code> | 文件名和文件大小md5值 |

<a name="getDNS"></a>

## getDNS(bucketname, callback) ⇒ <code>void</code>
查询DNS

**Kind**: global function  

| Param | Type | Description |
| --- | --- | --- |
| bucketname | <code>Object</code> | 桶名 |
| callback | <code>function</code> | 成功回调函数 		回调函数参数包括： 		upload： 返回最优的边缘节点列表，加速效果最好的在前面      lbs: 返回的最优的DNS地址，后续可以使用该地址进行上传 |

<a name="getOffset"></a>

## getOffset(param, callback) ⇒ <code>void</code>
获取上传断点位置

**Kind**: global function  

| Param | Type | Description |
| --- | --- | --- |
| param | <code>Object</code> | AJAX参数 		param属性有： 		serveIp {String} IP地址 		fileKey {String} 文件名与文件大小的MD5值 		bucketName {String} 桶名 		objectName {String} 对象名 		token {String} 上传凭证 |
| callback | <code>function</code> | 获取成功回调 		回调函数中的参数： 		offset {long} 当前分片在整个对象中的起始偏移量 |

<a name="uploadTrunk"></a>

## uploadTrunk(param, trunkData, callback) ⇒ <code>void</code>
上传分片

**Kind**: global function  

| Param | Type | Description |
| --- | --- | --- |
| param | <code>Object</code> | AJAX参数  	param中的属性有： 		serveIp {String} IP地址 		bucketName {String} 桶名 		objectName {String} 对象名 		token {String} 上传凭证 |
| trunkData | <code>Object</code> | 分片数据 		trunkData属性有： 		file {File} File对象      fileKey {String} 文件名和文件大小的MD5值      offset {long} 当前分片在整个对象中的起始偏移量      trunkSize {long} 分片大小      trunkEnd {long} 分片结束位置      context: {String} 上传上下文 |
| callback | <code>function</code> | 文件（非分片）上传成功回调函数 		回调函数参数： 		trunkData {Object} 分片数据 |

<a name="pauseUpload"></a>

## pauseUpload() ⇒ <code>void</code>
暂停上传

**Kind**: global function

---
_Source: https://npm.io/package/nos-uploader · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
