更新记录

1.0(2024-07-11)

SDK上传


平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 14.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 适用版本区间:10 - 17

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
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

隐私、权限声明

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

安卓端下载需要申请存储权限

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

插件功能使用了阿里云OSS存储客户端SDK,可以参考其官方网站https://help.aliyun.com/zh/oss/developer-reference/sdk-code-samples/ 插件不采集任何数据

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

暂无用户评论。

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