更新记录
1.0(2022-03-15) 下载此版本
此插件只适合新手
大佬们可自行根据需求改
平台兼容性
Vue2 | Vue3 |
---|---|
√ | × |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
HBuilderX 3.1.16 | × | √ | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 |
---|---|---|---|
× | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
× | × | × | × | × | × | × | × | × |
小程序自定义组件的通用使用方式详见:uni-app中使用小程序自定义组件教程
直接上传OSSAccessKeyId&AccessKeySecret直接去阿里云copy是写死的,有安全性问题
STS上传,OSSAccessKeyId&AccessKeySecret&SecurityToken由后端动态返回,每一次返回的都不一样
直接上传和STS上传从代码上比较,STS上传比直接上传要多一个x-oss-security-token参数
直接上传使用:
// 直接上传:
let obj = {
// 图片url
filePath: res.tempFilePaths[0],
// folderName:传至哪个目录
// name:图片名
dir: `${this.folderName}/${this.name}_`,
OSSAccessKeyId:"xxxxxxxxxxxxxxxxxxxxxxxx",
AccessKeySecret:"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
}
uni.showLoading({
title: '图片上传中...'
});
uploadImage(obj, 成功回调, 失败回调)
直接上传uploadFile.js配置:
formData: {
'key': aliyunFileKey,
'policy': policyBase64,
'OSSAccessKeyId': accessid,
'signature': signature,
'success_action_status': '200',
},
STS上传使用:
后端返回的数据示例:
data: {
AssumedRoleUser: {
Arn: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
AssumedRoleId: "xxxxxxxxxxxxxxxxxxxxxxxx"
}
Credentials: {
AccessKeyId: "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
AccessKeySecret: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Expiration: "xxxx-xx-xxxxx:xx:xxx"
SecurityToken: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
RequestId: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
// 直接上传:
// 多一个字段SecurityToken
let obj = {
// 图片url
filePath: res.tempFilePaths[0],
// folderName:传至哪个目录
// name:图片名
dir: `${this.folderName}/${this.name}_`,
OSSAccessKeyId:"xxxxxxxxxxxxxxxxxxxxxxxx",
AccessKeySecret:"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
SecurityToken: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
uni.showLoading({
title: '图片上传中...'
});
uploadImage(obj, 成功回调, 失败回调)
STS上传uploadFile.js配置:
// 和直接传相比较,只是多了一个x-oss-security-token参数,name参数可不传,个人感觉传不传没差
formData: {
'name': obj.filePath,
'key': aliyunFileKey,
'policy': policyBase64,
'OSSAccessKeyId': accessid,
'signature': signature,
'x-oss-security-token':obj.SecurityToken,
'success_action_status': '200',
},