国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 課堂 > 小程序 > 正文

微信小程序上傳文件到阿里OSS教程

2020-03-21 15:56:04
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

前言

(一)開(kāi)通OSS服務(wù)與新建Bucket

微信小程序,上傳文件,阿里OSS

開(kāi)通OSS服務(wù)這里省略,新建bucket。

(二)設(shè)置Bucket屬性,后臺(tái)配置域名

微信小程序,上傳文件,阿里OSS

上傳文件訪(fǎng)問(wèn)域名

微信小程序,上傳文件,阿里OSS

這里我們要在小程序后臺(tái)配置上傳域名(上面的域名是我自己的申請(qǐng)的,后臺(tái)配置的是公司的的域名,使用的時(shí)候你們用一套東西即可)。

微信小程序,上傳文件,阿里OSS

下圖是bucket管理,這里可以新建文件的保存路徑,域名管理。

微信小程序,上傳文件,阿里OSS

(三)服務(wù)端簽名直傳

點(diǎn)擊查看文檔

這里就不多做介紹了,這是上傳文件到oss需要的參數(shù),這些數(shù)據(jù)可以從后臺(tái)獲取。

{  "accessid": "6MKO******4AUk44",  "host": "http://post-test.oss-cn-hangzhou.aliyuncs.com",  "policy": "eyJleHBpcmF0aW9uIjoiMjAxNS0xMS0wNVQyMDoyMzoyM1oiLCJjxb25kaXRpb25zIjpbWyJjcb250ZW50LWxlbmd0aC1yYW5nZSIsMCwxMDQ4NTc2MDAwXSxbInN0YXJ0cy13aXRoIiwiJGtleSIsInVzZXItZGlyXC8iXV19",  "signature": "I2u5*******yff151E=",  "expire": 1446726203,  "dir": "user-dir/"}
  • accessid:用戶(hù)請(qǐng)求的accessid。
  • host:用戶(hù)要往哪個(gè)域名發(fā)送上傳請(qǐng)求。
  • policy:用戶(hù)表單上傳的策略(Policy),是經(jīng)過(guò)base64編碼過(guò)的字符串。
  • signature:對(duì)變量policy簽名后的字符串。
  • expire:上傳策略失效時(shí)間,在PolicyText里指定。在失效時(shí)間之前,都可以利用此Policy上傳文件,所以沒(méi)有必要每次上傳都去服務(wù)端獲取簽名。

Policy的內(nèi)容:

{"expiration":"2015-11-05T20:23:23Z","conditions":[["content-length-range",0,1048576000],["starts-with","$key","user-dir/"]]

Policy說(shuō)明:

Policy中增加了starts-with,用來(lái)指定此次上傳的文件名必須以u(píng)ser-dir開(kāi)頭,用戶(hù)可自行指定此字符串。增加starts-with的原因是:在很多場(chǎng)景下,一個(gè)應(yīng)用對(duì)應(yīng)一個(gè)Bucket,為了防止數(shù)字覆蓋,每個(gè)用戶(hù)上傳到OSS的文件都可以有特定的前綴。這樣就存在一個(gè)問(wèn)題,用戶(hù)獲取到這個(gè)Policy后,在失效期內(nèi)都能修改上傳前綴,從而上傳到別人的目錄下。為了解決這個(gè)問(wèn)題,可以設(shè)置應(yīng)用服務(wù)器在上傳時(shí)就指定用戶(hù)上傳的文件必須是某個(gè)前綴。這樣如果用戶(hù)獲取到了Policy也沒(méi)有辦法上傳到別人的前綴上,從而保證了數(shù)據(jù)的安全性。

(四)微信小程序上傳

getCloudCdnParams: function(filePath, index) {  var that = this;  var dataUrl = app.globalData.laiSignBaseUrl + "open/getOSSClient"  var params = new Object();  params.type = app.globalData.imgesDir  util.POST(   dataUrl, {    params,    success: function(res) {     if (res != null && res.data != null && res.data.success) {      var result = res.data.result      that.uploadFileFun(result, filePath, index)     }    },    fail: function() {},   }) },

因?yàn)樯蟼魑募袝r(shí)效性,所以在每次上傳的時(shí)候都要重新獲取上傳的參數(shù)。

 // 上傳圖片 uploadFileFun: function(result, filePath, index) {  var that = this;  wx.uploadFile({   url: app.globalData.uploadFileBaseUrl,   filePath: filePath,   /**上傳的參數(shù)**/   formData: {    name: filePath,    key: app.globalData.imgesDir + "demo-file" + result.expire + index,    policy: result.policy,    OSSAccessKeyId: result.accessid,    success_action_status: "200",    signature: result.signature,   },   success: function(res) {     /**這邊上傳成功后要自己拼接文件的地址**/     coverUrl: app.globalData.uploadFileBaseUrl + "/" + app.globalData.imgesDir + "demo-file" + result.expire + index   },   fail: function(res) {    console.log(res)   }  }) },

常見(jiàn)問(wèn)題以及解決方法

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 进贤县| 马尔康县| 丹巴县| 基隆市| 襄城县| 抚远县| 西林县| 班戈县| 山丹县| 文化| 清原| 山阳县| 万宁市| 奉节县| 当涂县| 竹北市| 金华市| 丰原市| 黄骅市| 河池市| 墨玉县| 滁州市| 醴陵市| 芒康县| 黑水县| 柳江县| 南部县| 南木林县| 曲麻莱县| 共和县| 定西市| 万山特区| 桃园县| 遂宁市| 鄢陵县| 新竹县| 昌黎县| 衢州市| 通化市| 遂川县| 丰顺县|