午夜91福利视频,午夜成人在线观看,午夜在线视频免费观看,午夜福利短视频,精品午夜成人免费视频APP

小程序模板網

微信小程序上傳圖片至OSS的一些個人總結

發布(bu)時間:2020-05-21 09:25 所屬欄目:小程序開發教程

這(zhe)(zhe)兩天修改公司小程序的(de)(de)一(yi)些功能,發(fa)現上傳圖片至OSS失敗,便一(yi)直(zhi)尋找出(chu)現了什(shen)么問題,最后發(fa)現是policy過期,更改后發(fa)現相應的(de)(de)signature也要改,因為需(xu)要特定的(de)(de)處理才能生成signature,當時好一(yi)頓查資料(liao),最后算出(chu)signature,在這(zhe)(zhe)里做一(yi)下(xia)總結.

首先,準(zhun)備工作:

1.下(xia)載Base64.js,hmac.js,sha1.js,crypto.js相(xiang)關算法(fa)  。

2.創建(jian)一個用(yong)于計算的policy和(he)signa的js文件(jian),我(wo)們(men)只(zhi)要輸出結果即可。我(wo)們(men)起名為ceshi.js。

3.在ceshi.js引入我們(men)下載(zai)的4個算法文(wen)件。

const Base64 = require('./Base64.js');

require('./hmac.js');
require('./sha1.js');
const Crypto = require('./crypto.js');

一、先轉碼Policy

在ceshi.js

let date = new Date();
  date.setHours(date.getHours() + 87677);
  let srcT = date.toISOString();
  const policyText = {
    "expiration": srcT, //設置該Policy的失效時間
    "conditions": [
      ["content-length-range", 0, 5 * 1024 * 1024] // 設置上傳文件的大小限制,5mb
    ]
  };
  const policyBase64 = Base64.encode(JSON.stringify(policyText));

使(shi)用(yong)此js可(ke)計算出一個policy

二、計算signature

const accesskey = 'QSZ***98V1DW'; // 為了保密我做了處理,大家輸入自己公司的accesskey即可。
  const bytes = Crypto.HMAC(Crypto.SHA1, policyBase64, accesskey, {
    asBytes: true
  });
  const signature = Crypto.util.bytesToBase64(bytes);
  console.log(policyBase64);
  console.log("myfunc....");
  console.log(signature);

這樣我們便可計算出(chu)signature啦。

三、全部代碼為

ceshi.js

const Base64 = require('./Base64.js');

require('./hmac.js');
require('./sha1.js');
const Crypto = require('./crypto.js');
function myfunc() {
  let date = new Date();
  date.setHours(date.getHours() + 87677);
  let srcT = date.toISOString();
  console.log(srcT);
  const policyText = {
    "expiration": srcT, //設置該Policy的失效時間
    "conditions": [
      ["content-length-range", 0, 5 * 1024 * 1024] // 設置上傳文件的大小限制,5mb
    ]
  };
  const policyBase64 = Base64.encode(JSON.stringify(policyText));
  const accesskey = 'QSZYryqudf8AAzyoAoJbeCIP98V1DW';
  const bytes = Crypto.HMAC(Crypto.SHA1, policyBase64,    accesskey, {
    asBytes: true
  });
  const signature = Crypto.util.bytesToBase64(bytes);
  console.log(policyBase64);
  console.log("myfunc....");
  console.log(signature);
}
module.exports.myfunc = myfunc;

四、調用ceshi.js

新建oss.js

const ceshi = require('./ceshi.js');
var app = getApp()
Page({
  data: {
  },
  onLoad: function (options) {
    ceshi.myfunc();
  },
  onReady: function () {
  },
  onShow: function () {
  },
  onHide: function () {
  },
  onUnload: function () {
  },
  onPullDownRefresh: function () {

  },
  onReachBottom: function () {
  },
  onShareAppMessage: function () {

  }
})

五、文件目錄

六、結果

以上是全部(bu)內容,感謝(xie)之(zhi)前看過(guo)的相(xiang)似文章,在此我自(zi)己做了(le)相(xiang)關總結,希望能幫大家解決(jue)問(wen)題(ti)!謝(xie)謝(xie)!


易優小程序(企業版)+靈活api+前(qian)后代碼開(kai)源(yuan) 碼(ma)云倉庫:
本文地址://www.jinyoudianli.com/wxmini/doc/course/25238.html 復制鏈接 如需定制請聯系易優客服咨詢:

工作日 8:30-12:00 14:30-18:00
周六及部分節假日提供值班(ban)服務

易小優(you)
轉(zhuan)人(ren)工(gong) ×