高帶寬業務的服務器,配合oss 的流量,減少服務器帶寬壓力。
用戶請求的數據不是通過接口返回,接口只返回oss的連接地址,然後再去觸發請求oss的txt文件。
var fs = require("fs");
let OSS = require('ali-oss'); //必須安裝阿里雲的oss模塊
//oss-cn-shenzhen//申請OSS服務時的區域
let OSSclient = new OSS({region: 'oss-cn-shenzhen', accessKeyId: 'XXXXX', accessKeySecret: 'XXXXXX'});
OSSclient.useBucket('ossTest');
let json_={
state:true,
info:"OK",
data:[1,2,3],
type:"lxyTestOss",//類型也可以看做是oss文件的上級文件夾
txt:"lxy-test-oss.txt"
};
async function main(json,callback){
let route=`${json.type}/${json.txt}`;
let str=JSON.stringify({state:json.state,info:json.info,data:json.data});
let bu=new Buffer(str, "utf8"); //利用緩存對象,不用在linux服務器保存文件然後在上傳到oss
let result = await OSSclient.put(route, bu);
callback(result);
}
main(json_, function (result) {
var url=result.res.requestUrls[0]
console.log(`遠程文件連接:`, url);
//讀取oss靜態文件
require('http').get(url,function(req,res){var html='';req.on('data',(data)=>{html+=data;});req.on('end',()=>{console.log(JSON.parse(html))});req.on('error',(e)=>{reject(e.message);});});
});