更新记录
1.1(2024-09-20)
修改安卓端isQuiet参数不生效问题
1.0(2024-07-11)
SDK上传
平台兼容性
Android |
Android CPU类型 |
iOS |
适用版本区间:4.4 - 14.0 |
armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 |
适用版本区间:10 - 17 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
zlpy-aliOssUpload
一、基本使用
使用前须知:
- ~~重要:此插件依赖阿里云音OSS客户端插件,仅可以用于阿里云OSS存储的文件操作
1.OSS初始化方法,必须先初始化才可以调用其他方法(阿里sts服务搭建)
var testModule = uni.requireNativePlugin('zlpy-aliOssUpload');
testModule.initOss({
stsUrl: "https://xxxx/sts/",
endPoint: "https://xxxx.com",
}, (res) => {
console.log("阿里云上传:" + JSON.stringify(res))
})
可配置参数说明
属性 |
类型 |
说明 |
兼容性 |
stsUrl |
string |
【必填】sts服务的地址 |
--- |
endPoint |
string |
【必填】endPoint的地址 |
--- |
force |
boolean |
【选填】默认false,不强制刷新ossclient,内部会根据令牌是否过期选择是否复用,true=强制刷新,每次都会重新获取令牌 |
--- |
2.文件上传方法,支持断点上传(建议在initOss回调中调用)
testModule.startUpload({
bucket: "xxxx",
name: "test/test.mp4",
path: plus.io.convertLocalFileSystemURL(filePath)
}, (res) => {
console.log("阿里云上传:" + JSON.stringify(res))
})
可配置参数说明
属性 |
类型 |
说明 |
兼容性 |
bucket |
string |
【必填】空间对应的bucket名称 |
--- |
name |
string |
【必填】文件存储进bucket内的路径,不要包含bucket |
--- |
path |
string |
【必填】要上传的文件路径,需要绝对路径,建议使用plus.io.convertLocalFileSystemURL转换一次 |
--- |
checkPoint |
boolean |
【可选】是否开启断点续传,默认开启,true=开启,false=不开启 |
--- |
forbidOverwrite |
boolean |
【可选】空间存在相同文件时是否覆盖,默认覆盖,true=覆盖,false=不覆盖 |
--- |
partSize |
number |
【可选】分片大小,默认258*1024 |
--- |
3.文件下载方法,支持断点下载(建议在initOss回调中调用,安卓端需要开启存储权限,请自行判断)
testModule.startDownload({
bucket: "xxxx",
name: "test/test.mp4"
}, (res) => {
console.log("阿里云上传:" + JSON.stringify(res))
})
可配置参数说明
属性 |
类型 |
说明 |
兼容性 |
bucket |
string |
【必填】空间对应的bucket名称 |
--- |
name |
string |
【必填】文件存储进bucket内的路径,不要包含bucket |
--- |
fileName |
string |
【可选】保存在本地的文件名称,默认使用下载的文件的名称 |
--- |
checkPoint |
boolean |
【可选】是否开启断点续传,默认开启,true=开启,false=不开启 |
--- |
4.取消正在上传/下载的任务
testModule.cancelTask({
name: "test/test.mp4",
isDownload: true
}, (res) => {
console.log("阿里云上传:" + JSON.stringify(res))
})
可配置参数说明
属性 |
类型 |
说明 |
兼容性 |
name |
string |
【必填】需要取消的任务对应的name值 |
--- |
isDownload |
boolean |
【可选】需要取消的任务的类型,默认false,取消上传任务,true=取消下载任务 |
--- |
5.删除空间的文件(必须在initOss回调中调用)
testModule.deleteFile({
bucket: "xxxx",
name: "test/test.mp4"
}, (res) => {
console.log("阿里云上传:" + JSON.stringify(res))
})
可配置参数说明
属性 |
类型 |
说明 |
兼容性 |
bucket |
string |
【必填】空间对应的bucket名称 |
--- |
name |
string |
【必填】需要删除的文件对应的name值 |
--- |
6.批量删除空间的文件(必须在initOss回调中调用)
testModule.deleteFileMultiple({
bucket: "xxxx",
nameList: ["test/test.mp4","test/test.mp4","test/test.mp4"]
}, (res) => {
console.log("阿里云上传:" + JSON.stringify(res))
})
可配置参数说明
属性 |
类型 |
说明 |
兼容性 |
bucket |
string |
【必填】空间对应的bucket名称 |
--- |
nameList |
array |
【必填】需要删除的文件对应的name值数组 |
--- |
isQuiet |
boolean |
【可选】回调返回的数据模式,默认false=详细模式,返回所有的数据,true=简单模式,只返回删除失败的文件列表 |
--- |
7.判断文件是否存在(必须在initOss回调中调用)
testModule.doesObjectExist({
bucket: "xxxx",
name: "test/test.mp4"
}, (res) => {
console.log("阿里云上传:" + JSON.stringify(res))
})
可配置参数说明
属性 |
类型 |
说明 |
兼容性 |
bucket |
string |
【必填】空间对应的bucket名称 |
--- |
name |
string |
【必填】要判断的文件路径 |
--- |
8.获取文件列表(必须在initOss回调中调用)
testModule.getObjectList({
bucket: "xxxx"
}, (res) => {
console.log("阿里云上传:" + JSON.stringify(res))
})
可配置参数说明
属性 |
类型 |
说明 |
兼容性 |
bucket |
string |
【必填】空间对应的bucket名称 |
--- |
maxKeys |
number |
【可填】每页返回数据量,默认100,最大不超过1000 |
--- |
prefix |
number |
【可填】根据前缀筛选搜索文件,默认为空 |
--- |
marker |
string |
【可填】搜索的起始位置,相当于页数,为空就是第一页,如果要搜第二页,要传入第一页返回的marker |
--- |
回调中的参数
可配置参数说明
属性 |
类型 |
说明 |
兼容性 |
type |
string |
error/success/warning/progress回调有四种类型 |
--- |
code |
string |
所有状态码参考下方表格 |
--- |
mes |
string |
简略的回调相关说明文本 |
--- |
resultInfo |
object |
状态码为success时可能存在的字段,一般带返回的结果的都在这里 |
--- |
errInfo |
object |
状态码为error时可能存在的字段,一般错误相关信息都在这里 |
--- |
resultInfo->isCompleted |
boolean |
获取列表时返回,当前是否最后一页 |
getObjectList |
resultInfo->marker |
string |
用作下一页的起始marker |
getObjectList |
resultInfo->result |
array |
列表数据 |
getObjectList |
状态码
可配置参数说明
编号 |
类型 |
说明 |
兼容性 |
0001 |
error |
sts请求异常,请求未成功发出 |
initOss |
0002 |
error |
获取到的Key信息异常,结果返回时已过期 |
initOss |
0003 |
error |
sts请求成功返回,但状态码非200 |
initOss |
0004 |
error |
sts请求成功返回,但状态非成功 |
initOss |
0005 |
error |
初始化OSSClient过程中产生异常 |
initOss |
0006 |
success |
初始化OSSClient成功 |
initOss |
0007 |
warning |
ossclient为空或者key信息已经过期 |
startUpload/startDownload |
0008 |
error |
上传/下载信息中缺少关键字段 |
startUpload/startDownload |
0009 |
success |
文件开始上传/下载 |
startUpload/startDownload |
0010 |
error |
本地异常 |
startUpload/startDownload |
0011 |
error |
服务异常 |
startUpload/startDownload |
0012 |
error |
其他未知异常 |
startUpload/startDownload |
0013 |
success |
上传/下载成功 |
startUpload/startDownload |
0014 |
progress |
上传/下载监听回调 |
startUpload/startDownload |
0020 |
error |
当前没有正在上传中的任务 |
cancelTask |
0021 |
error |
没有对应name值的上传任务 |
cancelTask |
0022 |
success |
取消任务成功 |
cancelTask |
0030 |
error |
本地异常 |
deleteFile/deleteFileMultiple |
0031 |
error |
服务端异常 |
deleteFile/deleteFileMultiple |
0032 |
error |
其他未知异常 |
deleteFile/deleteFileMultiple |
0033 |
success |
删除文件成功 |
deleteFile/deleteFileMultiple |
0040 |
error |
本地异常 |
getObjectList |
0041 |
error |
服务端异常 |
getObjectList |
0042 |
error |
其他未知异常 |
getObjectList |
0043 |
success |
获取列表成功 |
getObjectList |
0050 |
error |
本地异常 |
doesObjectExist |
0051 |
error |
服务端异常 |
doesObjectExist |
0052 |
error |
其他未知异常 |
doesObjectExist |
0053 |
success |
文件存在/不存在 |
doesObjectExist |