亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

微信小程序對接七牛云存儲的方法

2019-11-19 15:57:10
字體:
來源:轉載
供稿:網友

前言:

做小程序有一段時間了,總結一下做過的技術點,特此貢獻給小伙伴們!項目中,有圖片存儲、視頻存儲、錄音存儲這三個需要云對接存儲。

一、圖片/視頻/錄音上傳七牛對接

準備工作:

a、你要有一個七牛賬號,實名認證后,在七牛的個人中心,有個秘鑰管理-里面有一對秘鑰,是上傳必須的。這對秘鑰,配置在后端,配置時可以設置允許上傳格式,也可以設置為任何格式都可上傳,讓我們的后端大哥去慢慢弄吧。另外,還需要在七牛的對象存儲里新建一個存儲空間,所要上傳的文件就是存儲在你創建的空間里,如果你為了方便管理,也可以圖片/視頻/錄音/其他各創建一個存儲空間。這個存儲空間名字,也要配置在后端的。

b、需要一個上傳令牌token,一個文件上傳對應一個token,這是必須的。上傳令牌token還有時效性,后端配置1h,足以讓你完成上傳操作就行。這個token由我們自己后端生成,前端調接口獲取token,或者像我這樣,直接把接口丟在[uptokenURL]后面,七牛的會自己去取。也可以由我們自己先得到token,再丟給七牛。

uptokenURL:'https://get.qiniutoken.com/minibx/geo_f/gain_qn_toke',uploadURL:'https://up.qbox.me',//華東
uptoken: token,uploadURL:'https://up.qbox.me',//華東

c、七牛的js文件qiniuUploader.js,在下面給的七牛地址里面,可以去下載。里面有個小程序的SDK,解壓找到里面的qiniuUploader.js,在你需要上傳的頁面,導入這個js。https://developer.qiniu.com/sdk#community-sdk

1、圖片上傳七牛

通過小程序的方法,為用戶提供添加本地圖片,或者拍照,之后你會得到方法返回的圖片臨時路徑。我們可以把圖片維護在一個數組里,這樣在上傳七牛時,以隊列的形式上傳。

constqiniuUploader = require("../../libs/qiniuUploader.js");var sourceType = [['camera'], ['album'], ['camera','album']];var sizeType = [['compressed'], ['original'], ['compressed','original']];var imageArray = [];// 點擊事件,從本地相冊選擇圖片或使用相機拍照。chooseImage: function (e) {var that =this;wx.chooseImage({  sourceType: sourceType[this.data.sourceTypeIndex],  sizeType: sizeType[this.data.sizeTypeIndex],  count:this.data.count[this.data.countIndex],//這個count可以用來刪除當前圖片  success: function (res) {  // 返回照片的本地文件路徑,tempFilePath可以作為img標簽的src屬性顯示圖片vartempFilePaths = res.tempFilePaths;  imageArray.push(tempFilePaths);  that.setData({  imageList: tempFilePaths  })  that.pictureUploadqiniuMethod(imageArray,"tupian_");  },})},//得到圖片路徑數組后,準備上傳七牛pictureUploadqiniuMethod: function (imageArray, fileHead){var that =this;for(vari =0; i < imageArray.length; i++) {  var filePath = imageArray[i];  var imgName = filePath.substr(30,50);  qiniuUploader.upload(filePath, (res) => {  //上傳成功,上傳成功一張圖片,進入一次這個方法,也就是返回一次   console.log(res)},(error) => {  //圖片上傳失敗,可以在七牛的js里面自己加了一個err錯誤的返回值console.log('error: '+ error)},{  domain:'oqxfq54dn.bkt.clouddn.com',  uptokenURL:'https://get.qiniutoken.com/minibx/geo_f/gain_qn_token',  uploadURL:'https://up.qbox.me',//華東key: fileHead + imgName,// 自定義文件 keyregion:'ECN',});}},

紅線框內的這塊代碼,是七牛qiniuUploader.js文件里的,我加了一個if判斷,為了防止雖然上傳成功,但沒有返回data,這樣在代碼112行獲取返回data時,不至于直接報錯。

 

 解釋::

imageArray:準備上傳的圖片臨時地址數組。

fileHead:自定義上傳七牛文件名的頭,為了區別上傳文件,比如圖片/視頻/錄音/其他,

imgName:自定義上傳七牛文件名,前端處理嘛,我就簡單的通過截取臨時路徑(filePath )的30-50位字符作為儲存到七牛的文件名,即使你添加了兩張相同的圖片,小程序給你的臨時路徑也是不一樣的,所以不會存在重名情況。

domain:下載資源時用到。如果設置,在上傳后的success里返回的res.ImageURL字段,是一個帶http的直接可以訪問的文件地址,否則需要自己拼接。

key:最終儲存到七牛的文件名,我這里的圖片文件名=文件頭(fileHead)+偽文件名(imgName)

uploadURL:上傳到七牛的那個存儲區域,上傳區域和上傳區域代碼一定要對應上。

region:上傳區域代碼。

shouldUseQiniuFileName:表示是否由七牛來定義上傳文件名,如果是 true,則文件 key 由 qiniu 服務器分配 (全局去重)。默認是 false,也就是我們自己來定義。如果key設置了,優先級最高。

七牛存儲區域表:

這樣,在需要上傳頁面調用七牛的qiniuUploader.js,就可以上傳了。

 會遇到的問題: 

某張圖片/視頻/錄音上傳失敗可能的原因:

①上傳文件不是后端所允許的大小,圖片一般小于3M。視頻/錄音我限制是小于1M 

②上傳文件格式在后端沒有被允許。

③token獲取失敗,比如我遇到的,七牛的qiniuUploader.js文件通過接口獲取token,默認是這樣[var token = res.data.token;],而我們后端接口返回的token是這樣

所以我需要在七牛的js文件里修改為[var token = res.data.extra;],要么讓后端改。

2、視頻上傳七牛

視頻上傳和圖片上傳是一個套路,只是文件格式不同,視頻一般就一個文件,不像圖片有多張,需要搞個隊列來上傳。所以上傳視頻就這樣:

//事件綁定,添加視頻chooseVideo: function (res) {  var that =this;  wx.chooseVideo({    sourceType: sourceType[this.data.sourceTypeIndex],    camera: camera[this.data.cameraIndex],    maxDuration: duration[this.data.durationIndex],    success: function (res) {    var shipinFile= res.tempFilePath;    that.setData({    src: shipinFile  });    //用戶尋選擇好圖片后,調用上傳方法      that.shipinUploadqiniuMethod(shipinFile,"shipin_");    }  })},//視頻上傳七牛shipinUploadqiniuMethod: function (shipinFile, fileHead){    var that =this;    var shipinName = shipinFile.substr(30,50);      qiniuUploader.upload(shipinFile, (res) => {    //視頻上傳成功console.log(res)  },  (error) => {    //視頻上傳失敗,可以在七牛的js里面自己加了一個err錯誤的返回值    console.log('error: '+ error)  },  {    domain:'oqxfq54dn.bkt.clouddn.com',      uptokenURL:'https://get.qiniutoken.com/minibx/geo_f/gain_qn_token',      uploadURL:'https://up.qbox.me',//華東    key: fileHead + shipinName ,// 自定義文件 keyregion:'ECN',//華東區域代碼});  }},

3、錄音文件上傳七牛

小程序的錄音格式為silk,錄音上傳七牛,可以和視頻共用一個方法。但雖然上傳成功了,狀態碼為403,七牛沒有返回data,像這樣:

 正常上傳時,能正常返回data,并且狀態碼是200

后端配置silk格式允許,這樣應該是沒問題的。

上傳成功七牛卻沒有返回data,這個data里有文件傳七牛那邊在線地址,不返回我們怎么訪問了?,F在的處理是:把音頻文件傳到自己服務器。目前就只能這么辦了。

這里是小程序對接七牛云存儲的官方文檔:

https://github.com/gpake/qiniu-wxapp-sdk/blob/master/README.md?ref=developer.qiniu.com

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久免费成人精品视频| 欧美成人午夜影院| 国产伊人精品在线| 久久人人爽人人爽爽久久| 国产精品ⅴa在线观看h| 国产日韩欧美视频| 视频在线观看99| 欧美激情综合色| 日韩午夜在线视频| 国产日韩欧美电影在线观看| 狠狠躁夜夜躁久久躁别揉| 九色91av视频| 日韩在线播放av| 成人黄色激情网| 91夜夜揉人人捏人人添红杏| 亚洲激情视频在线播放| 成人福利免费观看| 国产中文字幕亚洲| 久久久久久久av| 久久精品视频在线| 久久这里只有精品视频首页| 亚洲日韩欧美视频| 中文字幕国产精品久久| 久久久精品久久久久| 国产91网红主播在线观看| 91精品国产乱码久久久久久蜜臀| xxx一区二区| 国产欧美婷婷中文| 欧美视频第一页| 日韩av在线免费看| 欧美精品一区三区| 亚洲精品日韩丝袜精品| 国产一区二区三区四区福利| 日韩精品极品毛片系列视频| 亚洲欧美精品一区| 亚洲精品欧美日韩专区| 色婷婷综合成人av| 欧美裸体xxxx极品少妇软件| 日韩av网站在线| 国产精品久久久久久久久久新婚| 国产精品免费一区| 中文字幕av日韩| 69精品小视频| 亚洲美女在线看| 亚洲美女福利视频网站| 久久久噜久噜久久综合| 最近的2019中文字幕免费一页| 欧美电影院免费观看| 日韩高清中文字幕| 国产精品91久久| 亚洲国产私拍精品国模在线观看| 久久久久久久久久久网站| 色无极亚洲影院| 国产盗摄xxxx视频xxx69| 高清视频欧美一级| 欧美成人sm免费视频| 亚洲第一精品福利| 日韩av黄色在线观看| 91青草视频久久| 精品久久久久久久久国产字幕| 国产精品福利在线观看| 国产精品99久久久久久久久久久久| 91夜夜揉人人捏人人添红杏| 91精品久久久久久| 亚洲精品视频免费在线观看| 欧美激情一区二区三区在线视频观看| 国产精品96久久久久久| 欧美成人精品激情在线观看| 国产免费一区二区三区香蕉精| 日本视频久久久| 欧美性色19p| 国产成人福利夜色影视| 亚洲风情亚aⅴ在线发布| 欧美电影免费观看高清| 国产精品欧美激情在线播放| 欧美成人激情视频免费观看| 国产精品精品一区二区三区午夜版| 亚洲精品白浆高清久久久久久| 亚洲一区二区精品| 久久成人在线视频| 国产精品久久久久久av福利| 国产精品久久久久久久久久新婚| 欧美日本黄视频| 国产精品综合不卡av| 在线电影欧美日韩一区二区私密| 精品国产乱码久久久久久天美| 91欧美精品午夜性色福利在线| 亚洲欧美国产制服动漫| 日韩成人av网| 亚洲成人免费网站| 亚洲精品一区av在线播放| 欧美性猛交xxxx免费看漫画| 亚洲成avwww人| 日韩av在线网页| 成人综合国产精品| 亚洲精品成人久久久| 亚洲自拍偷拍视频| 亚洲精品v欧美精品v日韩精品| 国产精品久久久久久久天堂| 97碰在线观看| 九九视频这里只有精品| 国产免费成人av| 精品久久久av| 国产69精品99久久久久久宅男| 午夜精品久久久久久久99热浪潮| 国产成人综合久久| 久久综合电影一区| 久久久成人精品| 亚洲欧洲在线观看| 中文字幕久精品免费视频| 欧美性猛交xxxx黑人| 亚洲精品久久7777777| 日韩女在线观看| 92福利视频午夜1000合集在线观看| 91免费看国产| 日韩精品中文字幕在线| 久久99国产综合精品女同| 一本色道久久综合狠狠躁篇怎么玩| 久青草国产97香蕉在线视频| 欧美成人精品三级在线观看| 欧美中文字幕在线视频| 国产精品成人av在线| 久久国产精品久久久久久| 欧美中文在线视频| 国产一区二区三区直播精品电影| 亚洲激情免费观看| 日韩av影院在线观看| 亚洲日韩中文字幕| 日韩中文字幕久久| 精品国产欧美一区二区五十路| 国产在线拍揄自揄视频不卡99| 免费91麻豆精品国产自产在线观看| 中文字幕欧美日韩精品| 欧美在线一区二区视频| 亚洲的天堂在线中文字幕| 伊人激情综合网| 亚洲成年人在线播放| 伊人久久精品视频| 国产精品久久国产精品99gif| 亚洲图片欧洲图片av| 亚洲第一区中文字幕| 欧美激情免费在线| 国产aaa精品| 亚洲第一色在线| 91人人爽人人爽人人精88v| 国产亚洲人成网站在线观看| 国产精品69久久久久| 91久久精品美女高潮| 欧美精品性视频| 国产成人亚洲精品| 精品欧美激情精品一区| 91日韩在线视频| 国产亚洲一区二区在线| 国产日韩欧美中文| 91色p视频在线| 欧美成人性色生活仑片| 欧美色播在线播放| 亚洲免费精彩视频| 国产精品第一第二| 亚洲成人av片| 亚洲人成电影在线观看天堂色| 日韩电影中文字幕在线观看| 国产成人精品国内自产拍免费看| 中文字幕无线精品亚洲乱码一区|