OSS签名Header实现Demo(NodeJS)-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

OSS签名Header实现Demo(NodeJS)

简介: OSS的集成上传和下载提供了SDK可以直接使用,但实际使用中一些用户受限环境或者设备限制需要使用api方式来实现上传和下载,本文以PutObject接口为例,提供了NodeJS实现的demo

概述

OSS的集成上传和下载提供了SDK可以直接使用,但实际使用中一些用户受限环境或者设备限制需要使用api方式来实现上传和下载,本文以PutObject接口为例,提供了NodeJS实现的demo。
注:建议优先使用OSS提供SDK,本文提供的只是签名实现上传demo,实际使用中需要结合业务来进行改动代码

详细信息

PutObject实现demo(测试环境Node.js v12.10.0,所需模块crypto-js、request):

var HmacSha1 = require('crypto-js/hmac-sha1') ;

var Base64 = require('crypto-js/enc-base64');

var request = require("request");

//endpoint

var endpont = 'http://oss-cn-hangzhou.aliyuncs.com';

//bucket

var bucketName = 'xxx';

//objectname

var objectname= 'mytest/nodejs.txt';

//accesskey

var accesskey = 'xxxx';

//accesskeySecret

var accesskeysecret ='xxx';

 

//生成GMT时间

var gmtDate = (new Date()).toGMTString();

console.log(gmtDate);

var contenttype = 'application/json';

var strtosgin = 'PUT\n\n'+contenttype+'\n'+gmtDate+'\n'+'/'+bucketName+'/'+objectname

 

 

var sign = Base64.stringify((HmacSha1(strtosgin,accesskeysecret)));   

   var options = {

        url: 'http://xxx.oss-cn-hangzhou.aliyuncs.com/'+objectname,

        headers: {

            'Content-Type':contenttype,

            'Date':gmtDate,

            'Authorization': 'OSS '+accesskey+':'+sign

        },

        body:'{test:test}'

    };

 

    request.put(options, function(error, response, body) {

        console.info('response:' + JSON.stringify(response));

        console.info("statusCode:" + response.statusCode)

        console.info('body: ' + body );

    });

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章