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 );

    });
相关实践学习
对象存储OSS快速上手——如何使用ossbrowser
本实验是对象存储OSS入门级实验。通过本实验,用户可学会如何用对象OSS的插件,进行简单的数据存、查、删等操作。
目录
相关文章
|
Java 对象存储
|
Java 对象存储
OSS对象存储Header方式JavaV4签名
本文介绍了如何使用Java代码生成阿里云OSS的V4签名授权。通过设置时间、访问密钥等参数,创建签名请求并输出授权信息。包含两张示意图展示流程和关键步骤。
704 1
|
前端开发 API 开发工具
阿里云oss开发实践:大文件分片、断点续传、实时进度 React+Node+Socket.IO
阿里云oss开发实践:大文件分片、断点续传、实时进度 React+Node+Socket.IO
2939 2
|
SQL 存储 Cloud Native
CDN转存离线日志到OSS,实现更长时间的日志存储
CDN转存离线日志到OSS,实现更长时间的日志存储
1042 1
CDN转存离线日志到OSS,实现更长时间的日志存储
|
存储 JSON 前端开发
React+node 图片剪裁上传,集成本地存储和阿里云OSS
最近一直在调研图片上传阿里云oss功能,上篇文章主要讲述了阿里云oss大文件分片、断点续传。这篇文章是在原有基础上,前端加了图片剪裁、后端加了本地存储功能。
795 0
React+node 图片剪裁上传,集成本地存储和阿里云OSS
|
消息中间件 JavaScript 数据挖掘
|
监控 关系型数据库 Serverless
基于Serverless+OSS分分钟实现图片秒变素描
在阿里云Serverless函数计算服务中部署普通图片转素描图函数服务,实现将批量上传到指定OSS桶内的图片自动转换为素描图并保存到另一个OSS桶内
基于Serverless+OSS分分钟实现图片秒变素描
|
存储 安全 Java
SpringBoot2.x系列教程24--SpringBoot实现文件上传到OSS阿里云存储
前言 在上一章节中,壹哥 给大家讲解了如何在SpringBoot实现单个文件和多个文件上传,但是那种方式现在挺多项目中都不再采用了,而是会把文件上传到云存储服务器中,比如阿里云、腾讯云、华为云等。所以今天 壹哥 利用阿里云的OSS存储,讲解如何把本地文件存储到云存储服务器中,本文会教给你如何购买配置阿里云OSS,并且教你如何实现文件上传到云空间,干货满满哦。 一. 阿里云OSS简介 1. 存储服务简介 我们进行项目开发,很多时候都需要进行文件、图片等的上传,对于很多项目来说,虽然有FastDFS等文件存储服务器技术,但其实我们完全没有必要搭建自己的图片等文件服务器。对一个小型非专业的应用来说,
2745 0
|
SQL 机器学习/深度学习 存储
通过日志服务实现数据库MySQL入湖OSS实践
日志服务(SLS)是云原生观测分析平台,为Log/Metric/Trace等数据提供大规模、低成本、实时平台化服务。一站式提供数据采集、加工、分析、告警可视化与投递功能。阿里云提供了企业级的数据湖解决方案,存储层基于阿里云对象存储OSS构建。日志服务支持开箱即用的OSS投递入湖功能,实现数据的端到端的入湖。 本文主要介绍如何借助日志服务将关系型数据库MySQL数据入湖和实践,并介绍数据在入湖之前可以日志服务可以提供哪些开箱即用的功能。
1404 0
通过日志服务实现数据库MySQL入湖OSS实践
|
缓存 前端开发 Java
基于tus协议OSS实现断点续传
当我们说“可恢复文件上传”时,我们指的是上传可以随时中断,然后从失败开始的状态恢复的能力。这种中断可能是意外的(例如,连接中断或服务器崩溃),也可能是用户决定暂停上传时自愿的。在传统的上传实现中,在这种情况下您的进度会丢失,但是 tus 使您能够从这些中断中恢复并在上传停止的地方继续