lbd-oss-sdk
v1.0.4
Published
development utils for oss
Downloads
1
Readme
##阿里云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;
}