OSS网页上传和断点续传(STSToken篇)
云账号AccessKey拥有所有API访问权限,在客户端不要直接使用,会泄露ak信息,造成安全问题。所以使用STS方式(临时账号权限)给客户端授权。
C#版获取STSToken
一、下载阿里SDK(aliyun-net-sdk-Core.dll和aliyun-net-sdk-Sts.dll)
下载地址:https://develop.aliyun.com/tools/sdk#/dotnet

二、把SDK引入项目,引用以下命名空间
using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Http;
using Aliyun.Acs.Core.Profile;
using Aliyun.Acs.Core.Exceptions;
using Aliyun.Acs.Sts.Model.V20150401;
三、准备相关账号和策略文件
region:OSS所属区域,比如cn-hangzhou(杭州)等
AccessKeyID
AccessKeySecret
RoleArn
policy
以上信息在OSS配置篇上有详细讲解,其中policy内容根据AliyunOSSTokenGeneratorRolePolicy角色的授权策略可得,可以保存为json文件
{
"Statement": [
{
"Action": "oss:*",
"Effect": "Allow",
"Resource": "*"
}
],
"Version": "1"
}
四、C#获取STSTok的代码
// GET: /STS/Token
public ActionResult Token()
{
string region = "cn-hangzhou";
string AccessKeyID = "LTAI5sruyeiwWDBx";
string AccessKeySecret = "EpFKkoeenidFHYAs3iIHYisAw";
string RoleArn = "acs:ram::163898893340737:role/aliyunosstokengeneratorrole";
string roleSessionName = "alice-001";
long durationSeconds = ;
string PolicyFile = System.IO.File.ReadAllText(Request.MapPath("/policy.json"));
try
{
// 创建一个 Aliyun Acs Client, 用于发起 OpenAPI 请求
IClientProfile profile = DefaultProfile.GetProfile(region, AccessKeyID, AccessKeySecret);
DefaultAcsClient client = new DefaultAcsClient(profile);
// 创建一个 AssumeRoleRequest 并设置请求参数
AssumeRoleRequest request = new AssumeRoleRequest();
request.Method = MethodType.POST;
request.RoleArn = RoleArn;
request.RoleSessionName = roleSessionName;
request.Policy = PolicyFile;
request.DurationSeconds = durationSeconds;
// 发起请求,并得到response
AssumeRoleResponse stsResponse = client.GetAcsResponse(request);
var Credentials = stsResponse.Credentials;
//返回Token
return Json(new
{
status = ,
AccessKeyId = Credentials.AccessKeyId,
AccessKeySecret = Credentials.AccessKeySecret,
Expiration = Credentials.Expiration,
SecurityToken = Credentials.SecurityToken
}, JsonRequestBehavior.AllowGet);
}
catch (ClientException e)
{
return Content(e.Message);
}
}
使用/STS/Token即可获取STSToken,其结果示例为:
{"status":200,"AccessKeyId":"STS.NHvFVYDPf2dmTRiPCv5ujnTbh","AccessKeySecret":"EanhX5L1na3jTDBTGSGALqcYm9qrB8s997tynnB8BVWi","Expiration":"2018-09-18T15:14:10Z","SecurityToken":"CAIShwJ1q6Ft5B2yfSjIr4vDDeztqY9HhaaGVnTYtEMjOfpGgZHJijz2IHtIenlvCO0YsfU+nWFW6/wdlqB6T55OSAmcNZIoZRTEcLXlMeT7oMWQweEurv/MQBqyaXPS2MvVfJ+OLrf0ceusbFbpjzJ6xaCAGxypQ12iN+/m6/Ngdc9FHHPPD1x8CcxROxFppeIDKHLVLozNCBPxhXfKB0ca0WgVy0EHsPrknZzBsUuA1wamkrBO+L6ceMb0M5NeW75kSMqw0eBMca7M7TVd8RAi9t0t1/AaqWiW44/CUggIskvbabXOgdRrLR5kYK8hALJDr/X6mvB+t/bai4Pt0RFJMPH83N428l48qhqAARtekq0AI7oT1jdeRLnqijTNR98Wdyvd4jzYZa8UipExR/D00ZEvmWY9zlC4kKqjfDYn2nkPhN3k8vcV//YuLYv72EhSG4GO/sBQqx8YE/FMkNdNYfMPXZY6C1jWqOAhqb97WhQP+MpXNQh7dic1x+6N//OzR2w5Dx0TszDoWRtv"}
到这里,获取STSToken即大功告成!!!
OSS网页上传和断点续传(STSToken篇)的更多相关文章
- OSS网页上传和断点续传(终结篇)
有了之前OSS网页上传和断点续传(OSS配置篇)和(STSToken篇),其万事俱备只欠东风啦,此终结篇即将展示OSS上传文件及断点续传的无限魅力... 网络卡顿.延迟能续传吗?能! 关了浏览器,还能 ...
- OSS网页上传和断点续传(OSS配置篇)
OSS网页上传和断点续传主要根据BrowserJS-SDK和相关文档整理而得,快速构建OSS上传应用 一.Bucket设置 浏览器中直接访问OSS需要开通Bucket的CORS设置 将allowed ...
- OSS文件上传及OSS与ODPS之间数据连通
场景描述 有这样一种场景,用户在自建服务器上存有一定数量级的CSV格式业务数据,某一天用户了解到阿里云的OSS服务存储性价比高(嘿嘿,颜值高),于是想将CSV数据迁移到云上OSS中,并且 ...
- B/S之大文件分段上传、断点续传
4GB以上超大文件上传和断点续传服务器的实现 随着视频网站和大数据应用的普及,特别是高清视频和4K视频应用的到来,超大文件上传已经成为了日常的基础应用需求. 但是在很多情况下,平台运营方并没有大文件上 ...
- php之大文件分段上传、断点续传
前段时间做视频上传业务,通过网页上传视频到服务器. 视频大小 小则几十M,大则 1G+,以一般的HTTP请求发送数据的方式的话,会遇到的问题:1,文件过大,超出服务端的请求大小限制:2,请求时间过长, ...
- 【SFTP】使用Jsch实现Sftp文件上传-支持断点续传和进程监控
JSch是Java Secure Channel的缩写.JSch是一个SSH2的纯Java实现.它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功能到 ...
- FTP文件上传 支持断点续传 并 打印下载进度(二) —— 单线程实现
这个就看代码,哈哈哈哈哈 需要用到的jar包是: <dependency> <groupId>commons-net</groupId> <artifact ...
- SpringBoot整合阿里云OSS文件上传、下载、查看、删除
1. 开发前准备 1.1 前置知识 java基础以及SpringBoot简单基础知识即可. 1.2 环境参数 开发工具:IDEA 基础环境:Maven+JDK8 所用技术:SpringBoot.lom ...
- Thinkphp整合阿里云OSS图片上传实例
Thinkphp3.2整合阿里云OSS图片上传实例,图片上传至OSS可减少服务器压力,节省宽带,安全又稳定,阿里云OSS对于做负载均衡非常方便,不用传到各个服务器了 首先引入阿里云OSS类库 < ...
随机推荐
- App分享之微信微博等各个社交平台的分享授权规则和常见问题
一.新浪微博分享规则 新浪微博支持分享类型: 应用内分享也就是网页分享支持: 文字,文字+图片,要分享链接需要链接添加在text里分享 客户端分享支持:文字,图片,文字+图片,图片+文字+链接 参数说 ...
- numpy中stack、hstack,vstack,dstack函数功能解释
https://blog.csdn.net/Riverhope/article/details/78922006 https://blog.csdn.net/ygys1234/article/deta ...
- 某游戏公司(凯英网络)PHP开发工程师笔试题
- 再次理解 C# LINQ
语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# 语言的技术统称. 查询表达式(生成表达式) 1.IEnumerable<T> 查询编译为委托.如 source.Where( ...
- LeetCode算法题-Plus One(Java实现)
这是悦乐书的第156次更新,第158篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第15题(顺位题号是66).给定一个非空数字数组来表示一个非负整数,并给其加1.该数组已 ...
- @ResponseBody注解和@RequestBody注解
@ResponseBody:表示该方法的返回结果直接写入HTTP response body中一般在异步获取数据时使用, 在使用@RequestMapping后,返回值通常解析为跳转路径,加上@Res ...
- ubuntu集群下ssh配置总结
最重要的前提就是:集群中的所有机器的用户名和用户组必须一样 一般做法都是在每台机器上新建用户组和用户名. 比如:sudo addgroup sparks 新建用户组sparks: sudo addus ...
- CAS适用场景
转载:http://www.jb51.net/article/86192.htm 下面小编就为大家带来一篇Java并发编程总结——慎用CAS详解.小编觉得挺不错的, 现在就分享给大家,也给大家做个参考 ...
- JAVA序列化和反序列化XML
package com.lss.utils; import java.beans.XMLDecoder; import java.beans.XMLEncoder; import java.io.Bu ...
- ddt框架优化(生成html报告注释内容传变量)
https://blog.csdn.net/weixin_33923148/article/details/86017742 按要求修改后发现 注释只传值第一个变量 这是因为 ddt数据驱动生成ht ...