高带宽业务的服务器,配合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);});});
});