更新记录

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',
},

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问