Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js ucloud ufileutil.js大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
/**
 * Created by chang on 2017/2/17.
 */

var request = require('request');
var fs = require('fs');
var crypto = require('crypto');
var utf8 = require('utf8');
var uuidV1 = require('uuid/v1');

var UCloudPublicKey = "todo";
var UCloudPrivateKey = "todo";
var httpVerb = "POST";
var ContentMD5 = "";

var MyDate = "";
var CanonicalizedUCloudHeaders = "";
var bucket = "todo";


function Base64(content) {
    return new Buffer(content).toString('base64');
}

function HmacSha1(secretKey,content) {
    var hmac = crypto.createHmac('sha1',secretKey);
    hmac.update(content);
    return hmac.digest();
}

/**
 * 单文件上传,暂时不支持文件
 * @param fiLeobj
 * @param res
 */
function upload(fiLeobj,res) {
    var key = uuidV1().replace(/-/ig,'');
    var ContentType = fiLeobj.type;
    var temp_path = fiLeobj.path;
    var Canonicalizedresource = "/" + bucket + "/" + key;
    var StringToSign = httpVerb + "\n" + ContentMD5 + "\n" + ContentType + "\n" + MyDate + "\n" +
        CanonicalizedUCloudHeaders + Canonicalizedresource;

    var Signature = Base64(HmacSha1(UCloudPrivateKey,utf8.encode(StringToSign)));
    var Authorization = "UCloud" + " " + UCloudPublicKey + ":" + Signature;

    var filename = temp_path.subString(temp_path.lasTindexOf("\\") + 1).subString(temp_path.lasTindexOf("\/") + 1);
    var formData = {
        Authorization: Authorization,Filename: key,file: {
            value: fs.createReadStream(temp_path),options: {
                filename: filename
            }
        }
    };

    var urlstr = 'http://' + bucket + '.ufile.ucloud.com.cn/';
    //cdn 跳转地址
    request.head = ({'Content-Type': 'application/octet-stream'});
    request.post({url: urlstr,formData: formData}).on('response',function (responsE) {
        if (response.statusCode == 200) {
            var cdnUrl = urlstr + key;

            var data = {src:cdnUrl,@R_674_10283@e:filename};
            var ret = {Code:0,data:data,msg:'上传成功'};

            res.json(ret);

        }else{
            console.log("statusCode is not 200,code:>>" + response.statusCode + ">>statusmessage:>>" + response.statusmessagE);
            var ret = {Code:1,msg:'上传失败'};

            res.json(ret);
        }
    }).on("error",function(E){
        console.log("this is upload error");
        console.log("e:>>" + E);
        var ret = {Code:1,msg:'上传失败'};

        res.json(ret);
    });
}

exportS.Upload = upload;

大佬总结

以上是大佬教程为你收集整理的node.js ucloud ufileutil.js全部内容,希望文章能够帮你解决node.js ucloud ufileutil.js所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:js