3.3.6 • Published 2 years ago

hf-upload v3.3.6

Weekly downloads
14
License
MIT
Repository
github
Last release
2 years ago

hf-upload

Introduce

将本地文件直接上传到阿里云或七牛云,分片上传,支持大文件上传

Installation

npm install hf-uplode --save or yarn add hf-uplode

Example

import React, { useRef, useEffect } from 'react'
import ReactDom from 'react-dom'
import HFUpload from 'hf-upload'

function Example() {
  const uploader = useRef(null)
  const inputRef = useRef(null)

  // 确定不同文件类型上传的方式  如:视频采用七牛云上传,其他方式采用阿里云
  const options = { rule: { video: 'qiniu' } }

  useEffect(() => {
    uploader.current = createUploader({
      accessKeyId: 'your accessKeyId',
      accessKeySecret: 'your accessKeySecret',
      stsToken: 'your stsToken',
      bucket: 'your bucket',
      region: 'oss-cn-beijing'
      qiniuToken:'your qiniuToken'
    })
  }, [])

  function createUploader(accessInfo) {
    return new HFUpload({
      params: accessInfo,
      options,
      onChange: ({ fileList }) => {
        console.log(fileList)
      }
    })
  }

  function handleChange(e) {
    const postFiles = [...e.target.files]
    uploader.current.add(postFiles)
    e.target.value = null
  }

  function handleClick() {
    const canUpload = uploader.current
    const el = inputRef.current
    if (!el || !canUpload) {
      return
    }
    el.click()
  }

  return (
    <input
      accept=".PNG,.JPG,.MP4"
      type="file"
      ref={inputRef}
      multiple={true}
      onClick={handleClick}
      onChange={handleChange}
    />
  )
}

ReactDOM.render(<Example />, container)

Prop Types

PropertyTypeDefaultDescriptionrequired
optionsobjectDefaultOptionsOptionsN
paramsobjectParams to create ali-OSS or qiniuN (you can use updateParams as well)
filesarrayInitial filesN
onStartfunctionUpload startN
beforeUploadfunctionPre-upload operationN
afterUploadfunctionPost-upload operationN
onChangefunctionUpload status and percent changeN
onSucceedfunctionSingle file upload succeededN
onFailedfunctionSingle file upload failedN
needUpdateParamsfunctionCalled when parameters need to be updatedN

DefaultOptions

PropertyTypeDefaultDescription
concurrencynumber2Maximum concurrency
partSizenumber500Part size (kb)
timeoutnumber60*1000Overtime time (ms)
retryCountMaxnumber3Retry times out
errorTextstring网络故障请重试Error message
ruleobject{}Select upload target by file type. If not specified, upload to Ali by default. eg: {'video': 'qiniu'}
uploadPathstring | { ali?: string; qiniu?: string }tmpUpload to the specified directory. eg:{ uploadPath: 'tmp/dev' }
previewSizenumber200Preview image size
md5booleantrueCalc md5 value
renderKeyfunctionvoidRender custome key
aclobjectnullSet ACL https://www.alibabacloud.com/help/zh/doc-detail/144047.htm?spm=a3c0i.23458820.2359477120.7.7bff6e9bls2pX6
asAttachmentbooleantrueSet content-disposition as attachment or not

Method

const uploader = new HfUpload({})
  • add(files:Array): add upload file

    uploader.add(files)

  • abort(uid:string): pause files being uploaded

    uploader.abort(uid)

  • reupload(uid:string): resume / continue upload

    uploader.reupload(uid)

  • delete(uid:string): delete file

    uploader.delete(uid)

  • clear(): clear all

    uploader.clear()

  • updateParams(params:Params): update parameters

    uploader.updateParams(params)

Contributing

  1. Fork, then clone the project.
  2. Cd hf-upload, then yarn or npm install.
  3. Run the project in development mode:yarn start or npm start.
  4. Make your changes.
  5. Commit and PR.

Document

Ali-oss SDK document:https://help.aliyun.com/document_detail/64041.html?spm=a2c4g.11186623.6.1208.373e5966mqf1Mw

qiniu JavaScript SDK document :https://developer.qiniu.com/kodo/sdk/1283/javascript

3.3.6-alpha.0

2 years ago

3.3.6-alpha.1

2 years ago

3.3.6

2 years ago

3.3.5-alpha.0

2 years ago

3.3.0

2 years ago

3.3.5

2 years ago

3.3.4

2 years ago

3.3.3

2 years ago

3.3.2

2 years ago

3.3.1-alpha.1

2 years ago

3.3.1-alpha.0

2 years ago

3.3.1-alpha.4

2 years ago

3.3.1-alpha.3

2 years ago

3.3.1-alpha.2

2 years ago

3.2.6

2 years ago

3.2.5

2 years ago

3.2.4

2 years ago

3.1.1-alpha.15

2 years ago

3.1.1-alpha.14

2 years ago

3.2.2

2 years ago

3.2.1

2 years ago

3.2.0

2 years ago

3.2.4-alpha.8

2 years ago

3.2.3

2 years ago

3.2.4-alpha.6

2 years ago

3.2.4-alpha.7

2 years ago

3.2.4-alpha.4

2 years ago

3.2.4-alpha.5

2 years ago

3.2.4-alpha.2

2 years ago

3.2.4-alpha.3

2 years ago

3.2.4-alpha.1

2 years ago

3.1.1-alpha.13

2 years ago

3.1.1-alpha.11

2 years ago

3.1.1-alpha.12

2 years ago

3.1.1-alpha.10

2 years ago

3.1.1-alpha.4

2 years ago

3.1.1-alpha.5

2 years ago

3.1.1-alpha.6

2 years ago

3.1.1-alpha.7

2 years ago

3.1.1-alpha.8

2 years ago

3.1.1-alpha.9

2 years ago

3.1.1-alpha.2

2 years ago

3.1.1-alpha.3

2 years ago

3.1.1-alpha.1

3 years ago

3.1.0

3 years ago

3.0.6

3 years ago

3.0.5

3 years ago

3.1.1-alpha.0

3 years ago

3.0.4

3 years ago

3.0.3

3 years ago

3.0.2

3 years ago

3.0.1

3 years ago

3.0.0

3 years ago

2.0.0-alpha.6

3 years ago

2.0.1

3 years ago

2.0.0-alpha.5

3 years ago

2.0.0-alpha.4

3 years ago

2.0.0-alpha.3

3 years ago

2.0.0

4 years ago

2.0.0-alpha.2

4 years ago

2.0.0-alpha.1

4 years ago

2.0.0-alpha0

4 years ago

1.1.6

4 years ago

1.1.5

4 years ago

1.1.4

4 years ago

1.1.4-beta

4 years ago

1.1.4-beta2

4 years ago

1.1.4-alpha

4 years ago

1.1.3

4 years ago

1.1.2-alpha

4 years ago

1.1.2

4 years ago

1.1.1

4 years ago

1.1.0

4 years ago

1.0.15-alpha

4 years ago

1.1.0-alpha

4 years ago

1.0.14

4 years ago

1.0.13

4 years ago

1.0.12

4 years ago

1.0.11

4 years ago

1.0.10

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago