為了微信小程序客服端實現(xiàn)自拍視頻能夠分享給多個好友,我們需要把小程序自拍的視頻存儲到服務器,而阿里云在性能和速度上比較不錯,所以我們選擇了阿里云作服務器。第一步。微信小程序項目...
為了微信小程序客服端實現(xiàn)自拍視頻能夠分享給多個好友,我們需要把小程序自拍的視頻存儲到服務器,而阿里云在性能和速度上比較不錯,所以我們選擇了阿里云作服務器。
第一步。微信小程序項目創(chuàng)建
1.到s://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html下載微信小程序IDE,我們使用的是wechat_web_devtools_0.11.122100.dmg。
2.微信小程序的項目建立參考s://mp.weixin.qq.com/debug/wxadoc/dev/index.html。
第二步:在PC端測試微信小程序的上傳接口
wx.uploadFile(OBJECT),將本地資源上傳到開發(fā)者服務器。如頁面通過wx.chooseImage等接口獲取到一個本地資源的臨時文件路徑后,可通過此接口將本地資源上傳到指定服務器??蛻舳税l(fā)起一個SPOST請求,其中content-type為multipart/form-data。具體的s數(shù)據流可以用wireshark抓取。
做測試的時候可以先開啟小程序開發(fā)工具的不校驗域名功能。假如有校驗域名的話,請先到微信小程序的開發(fā)設置,設置uploadFile合法域名。
參考s://mp.weixin.qq.com/debug/wxadoc/dev/api/network-file.html#wxuploadfileobject
第三步:在PC端測試阿里云JSSDK的上傳接口
參考s://github.com/aliyun-UED/aliyun-sdk-js?spm=5176.7926468.195975.2.ZJcqCx。

測試之后可以在阿里云服務器端查看文件是否上傳成功。
移植阿里云JSSDK到微信小程序工程,發(fā)現(xiàn)有很多的語法兼容需要修改,在對比阿里云的上傳PostObject(參考s://help.aliyun.com/document_detail/31988.html?spm=5176.product31815.6.875.5AzInj)和微信小程序的上傳接口,其實只要在微信小程序上傳API(wx.uploadFile)的OBJECT參數(shù)formData:增加'key':'OSSAccessKeyId':'policy':'Signature':'success_action_status':,這五個字段信息。
第四步。試用POSTMAN測試上傳視頻文件到阿里云
參數(shù)設置

為快速獲取policy,Signature,這兩個字段的數(shù)據,我們可以參考(s://help.aliyun.com/document_detail/31988.html?spm=5176.product31815.6.875.5AzInj)oss-h5-upload-js-direct.zip這個例子,通過chrome開發(fā)者選項,查看這兩個字段的數(shù)據。
第五步:試用POSTMAN參數(shù)配置到微信小程序上傳視頻文件到阿里云
微信小程序端API配置
其中對應Postman的測試參數(shù),aliyunFileKey='${filename}',accessid='在阿里云OSS申請的
accessKeyId',policyBase64='eyJleHBpcmF0aW9uIjoiMjAyMC0wMS0wMVQxMjowMDowMC4wMDBaIiwiY29uZGl0aW9ucyI6W1siY29udGVudC1sZW5ndGgtcmFuZ2UiLDAsMTA0ODU3NjAwMF1dfQ',signature='PSWlNPrNjU2xdEiwFLiOBa2ieEU='。
第六步:移植阿里云policy,signature要用到的js算法到微信小程序
參考s://github.com/tomyun/crypto-js/tree/1.1.x。或者使用我們改好的s://github.com/peterhuang007/weixinFileToaliyun.git,只改動暴露接口。
第七步:手機端預覽測試上傳功能。
在PC端IDE調試上傳的時候,不使用白名單沒問題,開啟校驗白名單域名無法上傳文件。當我們把域名(yiqixiu.oss-cn-hangzhou.aliyuncs.com)設置到微信小程序服務器的uploadFile合法域名時候,提示該域名因違規(guī)被禁止設置。如有異議,請在微信客戶端打開該域名進行申訴。如何申訴,把s://yiqixiu.oss-cn-hangzhou.aliyuncs.com發(fā)到好友的對話窗口上在點擊打開,就可以進行申訴了。但是我們的項目趕不能等。就只能使用Nginx配合申請一個代理域名做轉發(fā)s到。在把代理域名設置到微信小程序服務器的uploadFile合法域名。

上傳視頻文件是成功了,但是新的問題又來了,我們在服務端查看文件的時候,文件名跟上傳上來的文件對應不上一直是wx:file.mp4,而用微信小程序的IDE傳上來的視頻文件名稱為去掉wx:file//前綴字符串。而使用體驗版的時候就無法上傳了。后來調試發(fā)現(xiàn)需要在from表單更改key字段的內容,即aliyunFileKey要指定上傳文件的object名稱(對應服務端存放的位置和文件名)。
文章地址:http://www.meyanliao.com/article/online/9733.html

- 1互聯(lián)網對傳統(tǒng)企業(yè)的沖擊有多大
- 2美團再因不正當競爭敗訴新反法互聯(lián)網專條首次適用外賣領域!
- 32021互聯(lián)網十件大事對不起賈躍亭你只能排第四
- 4互聯(lián)網宣傳做的就是用戶體驗
- 5互聯(lián)網創(chuàng)業(yè)到底需要怎樣的能力
- 6適合上班族的25個副業(yè)(適合上班族的互聯(lián)網副業(yè))
- 7互聯(lián)網的世界沒有永遠的敵人只有永遠的利益
- 8押唄進駐天線貓助力互聯(lián)網數(shù)碼產品寄存行業(yè)經濟持續(xù)發(fā)展
- 9互聯(lián)網公司如何做好品牌定位
- 102021年互聯(lián)網金融發(fā)展回顧冬去春欲來改弦當更張