Skip to content

tencentyun/cos-wx-sdk-v4

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cos-wx-sdk-v4

已弃用 - 请升级到 cos-wx-sdk-v5

由于 v4 接口只能上传20MB文件,请直接使用基于 XML API 的 cos-wx-sdk-v5

微信小程序 sdk for 腾讯云对象存储服务

前期准备

  1. 请您到 https://console.qcloud.com/cos 获取您的项目 ID(appid),bucket,secret_id 和 secret_key。

  2. 请您到 https://console.qcloud.com/cos 针对您要操作的 bucket 进行跨域(CORS)设置,可以按照如下范例,修改来源 Origin:

    ./cors.png

配置

Step1. 下载源码

github 下载源码,将 SDK 中 dist 目录下的 cos-wx-sdk-v4.js 包含到您的项目中。

Step.2 加载文件

把 cos-wx-sdk-v4.js 放在小程序 app/lib/ 目录下,在您的页面 js 里引入:

require('../../lib/cos-wx-sdk-v4');

使用

cos-wx-sdk-v4 与 cos-js-sdk-v4 的不同点

  1. 小程序文件上传过程中,js 没权限读取文件内容,所以 wx-sdk 相比 js-sdk 少了分片上传的所有逻辑。
  2. 由于文件不分片上传只支持 20MB 大小,wx-sdk 上传接口最大只支持 20MB 大小的文件上传。
  3. 小程序里发送请求使用微信提供的 api wx.requestwx.uploadFile

示例代码

所有的示例代码实现可以参考 samples/simple-app/pages/index/index.js

初始化

//初始化逻辑 //特别注意: WX-SDK 使用之前请先到 https://console.qcloud.com/cos 对相应的Bucket进行跨域设置 var cos = new CosCloud({ appid: appid, // APPID 必填参数 bucket: bucket, // bucketName 必填参数 region: 'sh', // 地域信息 必填参数 华南地区填 gz 华东填 sh 华北填 tj getAppSign: function (callback) {//获取签名 必填参数 // 下面简单讲一下获取签名的几种办法 // 首先,签名的算法具体查看文档:[COS V4 API 签名算法](https://www.qcloud.com/document/product/436/6054) // 1.搭建一个鉴权服务器,自己构造请求参数获取签名,推荐实际线上业务使用,优点是安全性好,不会暴露自己的私钥 // 拿到签名之后记得调用callback /*  wx.request({  url: 'SIGN_URL',  data: {once: false},  dataType: 'text',  success: function (result) {  var sig = result.data;  callback(sig);  }  });  */ // 2.直接在浏览器前端计算签名,需要获取自己的 accessKey 和 secretKey, 一般在调试阶段使用 // 拿到签名之后记得调用 callback // var res = getAuth(false); // 这个函数自己根据签名算法实现 // callback(res); // 3.直接复用别人算好的签名字符串, 一般在调试阶段使用 // 拿到签名之后记得调用 callback // callback('YOUR_SIGN_STR') }, getAppSignOnce: function (callback) { //单次签名,必填参数,参考上面的注释即可 // 填上获取单次签名的逻辑 // var res = getAuth(true); // 这个函数自己根据签名算法实现 // callback(res); } });

接口调用示例

以下示例代码需要前置定义部分变量

var bucket = 'WXAPP_BUCKET_NAME'; var successCallback = function (result) { console.log('success', result); } var errorCallback = function (result) { console.log('success', result); } var progressCallback = function (info) { console.log('success', result); }

上传程序示例

wx.chooseImage({ count: 1, sizeType: ['original', 'compressed'], sourceType: ['album', 'camera'], success: function (res) { if (res.tempFilePaths && res.tempFilePaths.length) { var tempFilePath = res.tempFilePaths[0]; wx.showToast({title: '正在上传...', icon: 'loading', duration: 60000}); cos.uploadFile({ success: successCallback, error: errorCallback, onProgress: progressCallback, // 返回 info 对象,带有 loaded、total、percent、speed 四个字段 bucket: 'wx', path: '/test.png', filepath: tempFilePath, insertOnly: 0, // insertOnly==0 表示允许覆盖文件 1表示不允许覆盖 bizAttr: 'test-biz-val' }); } } });

创建文件夹示例

cos.createFolder(successCallback, errorCallback, bucket, '/test', 'folder_first_attr');

获取文件夹内列表示例

cos.getFolderList(successCallback, errorCallback, bucket, '/test');

查询文件夹属性示例

cos.getFolderStat(successCallback, errorCallback, bucket, '/test');

更新文件夹属性示例

cos.updateFolder(successCallback, errorCallback, bucket, '/test', 'folder_new_attr');

删除文件夹示例

cos.deleteFolder(successCallback, errorCallback, bucket, '/test');

删除文件示例

cos.deleteFile(successCallback, errorCallback, bucket, '/test.png');

获取文件属性示例

cos.getFileStat(successCallback, errorCallback, bucket, '/test.png');

更新文件属性示例

cos.updateFile(successCallback, errorCallback, bucket, '/test.png', 'file_new_attr');

拷贝文件示例

cos.copyFile(successCallback, errorCallback, bucket, '/test.png', '/test-cp.png', 0);

移动文件示例

cos.copyFile(successCallback, errorCallback, bucket, '/test.png', '/test-cp.png', 0);

反馈

欢迎提 issue

About

腾讯云 COS 微信小程序 SDK(JSON API)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •