TL;DR
SDK 連接在這
https://github.com/gpake/qiniu-wxapp-sdk
正文
小程序這么火,你一定也會看一看。但是之前一直在用的七牛怎么接入小程序?
來不及解釋了快上車!
基礎(chǔ)準(zhǔn)備
- 一個可以接入小程序的公眾號(如果不需要上線不用管這個)
- 注冊好的七牛空間
- 七牛微信小程序SDK
如果你還不了解小程序,別著急,不妨先看看微信小程序文檔
七牛不會用的看這里
如果小程序不需要上線請忽略這個設(shè)置
根據(jù)你創(chuàng)建的七牛存儲空間,把對應(yīng)的 https 上傳地址添加到小程序的訪問白名單中:
1,登錄 微信公眾平臺,前往 設(shè)置 - 開發(fā)設(shè)置,點擊 服務(wù)器配置 下的「修改」鏈接。
2,修改 uploadFile 域名(比如華北 https 上傳地址為:https://up-z1.qbox.com,地址不清楚請參見 https地址附錄)
3,如果需要使用 wx.downloadFile 下載文件(圖片不需要),則還需要一同設(shè)置 downloadFile 域名,為你的 bucket 下載地址
4,保存即可
字段名 | 內(nèi)容 |
---|---|
request 域名 | https://yourServce.com |
uploadFile 域名 | https://up.qbox.me |
downloadFile 域名 | https://baldkf.bkt.clouddn.com |
注意!!目前微信限制每月只能修改三次域名白名單。
接入指南
接下來就很容易了,你只需要把 七牛微信小程序SDK項目 SDK目錄下的 quniuUploader.js
拖到小程序項目里。
生產(chǎn)環(huán)境請使用qiniuUploader-min.js
然后:
const qiniuUploader = require("../../../utils/qiniuUploader"); // 路徑要自己搞定
Page({
didPressChooseImage: function() {
var that = this;
// 選擇圖片
wx.chooseImage({
count: 1,
success: function (res) {
var filePath = res.tempFilePaths[0];
// 交給七牛上傳
qiniuUploader.upload(filePath, (res) => {
// 每個文件上傳成功后,處理相關(guān)的事情
// 其中 info 是文件上傳成功后,服務(wù)端返回的json,形式如
// {
// "hash": "Fh8xVqod2MQ1mocfI4S4KpRL6D98",
// "key": "gogopher.jpg"
// }
// 參考http://developer.qiniu.com/docs/v6/api/overview/up/response/simple-response.html
that.setData({
'imageURL': res.imageURL,
});
}, (error) => {
console.log('error: ' + error);
}, {
uploadURL: 'https://up.qbox.me',
domain: 'bzkdlkaf.bkt.clouddn.com', // // bucket 域名,下載資源時用到。如果設(shè)置,會在 success callback 的 res 參數(shù)加上可以直接使用的 ImageURL 字段。否則需要自己拼接
key: 'customFileName.jpg', // 自定義文件 key。如果不設(shè)置,默認(rèn)為使用微信小程序 API 的臨時文件名
// 以下方法三選一即可,優(yōu)先級為:uptoken > uptokenURL > uptokenFunc
uptoken: 'xxxxxxxxUpToken', // 由其他程序生成七牛 uptoken
uptokenURL: 'UpTokenURL.com/uptoken', // 從指定 url 通過 HTTP GET 獲取 uptoken,返回的格式必須是 json 且包含 uptoken 字段,例如: {"uptoken": "0MLvWPnyy..."}
uptokenFunc: function() {return 'zxxxzaqdf';}
});
}
})
}
});
// domain 為七牛空間(bucket)對應(yīng)的域名,選擇某個空間后,可通過"空間設(shè)置->基本設(shè)置->域名設(shè)置"查看獲取
// key:通過微信小程序 Api 獲得的圖片文件的 URL 已經(jīng)是處理過的臨時地址,可以作為唯一文件 key 來使用。
然后?沒然后了,開心的玩耍吧~
注意事項
更多問題,不如看看 SDK 文檔 和里面的 Demo吧~
小程序HTTPS問題
有朋友注意到了七牛的上傳地址不是小程序要求的 https,而且強行寫 https 會報錯。
其實七牛文檔里已經(jīng)寫了:華北區(qū)文檔
UP HTTP(上傳):http://up-z1.qiniu.com(源站入口)、http://upload-z1.qiniu.com(CDN 透傳入口);
UP HTTPS(上傳):https://up-z1.qbox.me。