lbd-oss-sdk

1.0.4 • Public • Published

阿里云OSS前端直传SDK

包下载

npm下载
npm install lbd-oss-sdk -S

淘宝镜像下载
cnpm install lbd-oss-sdk -S

工程化使用ES6/commonjs模块

ES:
import OSS from 'lbd-oss-sdk'

CommonJs: 
const OSS = require('lbd-oss-sdk').default

script引入使用

/node_modules/lbd-oss-sdk/dist/bundle/index.js 为源文件提取自用

构造器参数

{
  // { boolean } 是否使用服务端签名模式 
  isServerSignature,
  // { string } 加密后的policy信息
  policyBase64,
  // { string } oss的accessKeyId
  accessKeyId,
  // { string } oss的accessKey
  accessKey,
  // { string } oss的bucket
  host,
  // { string } 存放的bucket目录 不能以/开头结尾
  targetDir,
  // { string } 签名串
  signature,
  // { object } policy信息
  policyText = {
    //设置该Policy的失效时间,超过这个失效时间之后,就没有办法通过这个policy上传文件了
    "expiration": "2200-01-01T12:00:00.000Z", 
     "conditions": [
        // 设置上传文件的大小限制
        ["content-length-range", 0, 1048576000] 
     ]
  },
}

更多policyText的配置请查阅阿里云OSS帮助文档

前端签名使用(前端签名不推荐使用在浏览器环境下,OSS密钥写在前端容易泄露, 推荐微信小程序使用)

const oss = new OSS({
  accessKeyId: 'LTA***********',
  accessKey: 'dt4g9*****************',
  host: 'https://*****************'
});

后端签名使用(推荐使用在浏览器环境下,后端代签名可以有效保护密钥安全)

const oss = new OSS({
  //开启后端签名模式
  isServerSignature: true,
  //后端提供
  policyBase64: '***************',
  //后端提供
  signature: '***************',
  accessKeyId: 'LTA***********'
  host: 'https://*****************'
});

文件上传

@params file { File } 文件实体(文件对象/小程序临时地址)
@params filename { string } 文件名(带后缀名) 文件名尽量使用UUID/时间戳等不会重名的方式命名,以免覆盖OSS的同名资源
@params targetDir { string } 存放目录(不能以/开头结尾)
oss.upload(file, filename, targetDir)

使用案例(小程序选择照片上传)
let responseURL; 
wx.chooseImage({
  count: 1,
  success: (res) => {
    const file = res.tempFilePaths[0];
    const filename = new Date().getTime() + '.png';
    const targetDir = 'mini/images'
    oss.upload(file, filename, targetDir).then(response => {
      responseURL = response.objectURL || '';
    })
  }
});

使用案例(web选择照片上传)
let responseURL; 
function handleFileChange(ev) {
  const file = ev.target.files[0];
  const filename = new Date().getTime() + '.png';
  const targetDir = 'web/images'
  oss.upload(file, filename, targetDir).then(response => {
    responseURL = response.objectURL;
  });
  ev.target.value = null;
}

Package Sidebar

Install

npm i lbd-oss-sdk

Weekly Downloads

0

Version

1.0.4

License

ISC

Unpacked Size

60.5 kB

Total Files

15

Last publish

Collaborators

  • haozijunqaq