概述
對象存儲OSS SDK提供了集成簽名、上傳和下載的SDK,但實際使用中,有時需要使用API的方式實現在簽名的情況下進行上傳和下載,本文以PutObject接口為例,提供了Node.js語言實現的示例。
說明
建議優先使用OSS提供SDK,本文提供的只是簽名實現上傳示例,實際使用中需要結合業務進行代碼改動。
詳細信息
Node.js V12.10.0使用PutObject接口實現示例代碼如下。
說明
所需模塊有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 );
});
相關文檔
適用于
對象存儲OSS
文檔內容是否對您有幫助?