阿里云OSS搭建移动应用直传服务的.Net C#示例
OSS好几个都没有.Net示例,只有SDK
于是我就拿Java改成C#代码;使用前先去Nuget包管理器下载Aliyun.Acs.Core还有Aliyun.Acs.Sts;
在安装这个两个包的时候安装不了,可能因为是.Net Core的原因吧。
Nuget安装方式安装不了的,先去
https://github.com/aliyun/aliyun-openapi-net-sdk
下载这两个项目然后生成引用到自己项目中。
安装后复制下面的代码即可,记得要把bucketName改成自己bucket的名字
using Aliyun.Acs.Core.Exceptions; using Aliyun.Acs.Sts.Model.V20150401; using Aliyun.Acs.Core.Http; using Aliyun.Acs.Core.Profile; using Aliyun.Acs.Core;namespace Test {public class OssServer{private const string REGION_CN_HANGZHOU = "cn-hangzhou";private const string STS_API_VERSION = "2015-04-01";private const string AccessKeyID = "****你的AccessKeyID****";private const string AccessKeySecret = "****你的AccessKeySecret****";private const string RoleArn = "****你的RoleArn****";private const int TokenExpireTime = 3600;//这里是权限配置,请参考oss的文档private const string PolicyFile = @"{""Statement"": [{""Action"": [""oss:PutObject""],""Effect"": ""Allow"",""Resource"": [""acs:oss:*:*:bucketName/*"", ""acs:oss:*:*:bucketName""]}],""Version"": ""1"" }"; private AssumeRoleResponse assumeRole(String accessKeyId, String accessKeySecret, String roleArn,String roleSessionName, String policy, ProtocolType protocolType, long durationSeconds){try{// 创建一个 Aliyun Acs Client, 用于发起 OpenAPI 请求IClientProfile profile = DefaultProfile.GetProfile(REGION_CN_HANGZHOU, accessKeyId, accessKeySecret);DefaultAcsClient client = new DefaultAcsClient(profile);// 创建一个 AssumeRoleRequest 并设置请求参数AssumeRoleRequest request = new AssumeRoleRequest();//request.Version = STS_API_VERSION;request.Method = MethodType.POST;//request.Protocol = protocolType; request.RoleArn = roleArn;request.RoleSessionName = roleSessionName;request.Policy = policy;request.DurationSeconds = durationSeconds;// 发起请求,并得到responseAssumeRoleResponse response = client.GetAcsResponse(request);return response;}catch (ClientException e){throw e;}}public StsTokenModel GetToken(){// 只有 RAM用户(子账号)才能调用 AssumeRole 接口// 阿里云主账号的AccessKeys不能用于发起AssumeRole请求// 请首先在RAM控制台创建一个RAM用户,并为这个用户创建AccessKeys// RoleArn 需要在 RAM 控制台上获取// RoleSessionName 是临时Token的会话名称,自己指定用于标识你的用户,主要用于审计,或者用于区分Token颁发给谁// 但是注意RoleSessionName的长度和规则,不要有空格,只能有'-' '_' 字母和数字等字符// 具体规则请参考API文档中的格式要求string roleSessionName = "alice-001";// 必须为 HTTPStry{AssumeRoleResponse stsResponse = assumeRole(AccessKeyID, AccessKeySecret, RoleArn, roleSessionName,PolicyFile, ProtocolType.HTTPS, TokenExpireTime);return new StsTokenModel(){status = 200,AccessKeyId = stsResponse.Credentials.AccessKeyId,AccessKeySecret = stsResponse.Credentials.AccessKeySecret,Expiration = stsResponse.Credentials.Expiration,Security = stsResponse.Credentials.SecurityToken};}catch (ClientException e){return new StsTokenModel() { status = Convert.ToInt32(e.ErrorCode) };}}} }
GetToken()函数返回的STS凭据数据模型
public class StsTokenModel{public int status { get; set; }public string AccessKeyId { get; set; }public string AccessKeySecret { get; set; }public string Security { get; set; }public string Expiration { get; set; }}
转载于:https://www.cnblogs.com/myhalo/p/6626530.html
阿里云OSS搭建移动应用直传服务的.Net C#示例相关推荐
- 阿里云oss搭建图床以及使用PicGO上传图片到图床
阿里云oss搭建图床以及使用PicGO上传图片到图床 最近喜欢上了使用markdown来写博客,可是markdown的图片却是本地的,如果我要发博客到GitHub上,那么就不行了,GitHub上是不能 ...
- MarkText + iPic + 阿里云Oss 搭建markdown文档写作
MarkText + iPic + 阿里云Oss 搭建markdown文档写作 本文记录如何下载配置MarkText编辑器以及如何使用iPic+阿里云的对象存储搭建一个markdown的图床 下载安装 ...
- 【报错记录】阿里云OSS搭建图床 访问报错
使用阿里云OSS搭建图床后,在Typora中自动上传图片后,却无法显示图片,在浏览器中打开链接报错: <Error> <Code>NoSuchKey</Code> ...
- gitee图床用不了,阿里云OSS搭建图床(非常详细)
文章目录 1. 购买阿里云oss对象存储服务 2. 新建OSS Bucket 3. 配置OSS资源访问域名 4. 配置picGO 4. 将gitee图床图片迁移到OSS中 最近,打开自己的markdo ...
- 阿里云OSS搭建图床
在写markdown文档的时候,经常会想要插入一些图片来让文章变的尽可能的图文并茂,但是如果是托管到GitHub上的话,图片又不是太好处理,所以就有了今天的这篇文章. 搭建自己的图床的好处 再网上你可 ...
- NextCloud+阿里云OSS 搭建属于自己的私人网盘
原文链接:ECHK1NG's 学习之路 近些年来各路网盘纷纷退市,只有为数不多的网盘还在死死坚持,例如百度网盘. NextCloud逐渐进入了人们的视野. 这几天搭建网盘的过程,遇到了许多问题 ...
- 【Typora丨Windows】图像设置:本地保存PicGo+阿里云OSS图床搭建
图像链接语法:![替代文字](路径:本地路径/云端路径) 更多使用方法见:官方丨帮助丨Images in Typora 本地保存 '文件'->'偏好设置'->'图像',进入如下界面. 插入 ...
- 阿里云OSS对象存储搭建网盘教程
阿里云OSS对象存储高可靠数据存储服务,使用OSS对象存储搭建个人网盘或企业网盘,存储可靠性高下载不限速,当然阿里云推出了自家的网盘,码笔记分享使用OSS对象存储搭建个人网盘或企业网盘的方法: 使用O ...
- 手把手教你Typora图床配置(PicGo+阿里云OSS/腾讯云COS)
本文目录 ❤️Typora + PicGo +阿里云OSS图床 / 腾讯云COS图床配置思路❤️ ✨安装PicGo配置Typora(非常详细) 第一步:安装PicGo 第二步:配置Typora ✨云服 ...
最新文章
- PHP的Smarty
- Linux系统适配苹果M1 芯片的项目有新进展
- python数据分析张俊红_关于数据分析我们来聊聊Python
- Python入门100题 | 第077题
- 征战蓝桥 —— 2013年第四届 —— C/C++A组第7题——错误票据
- numpy维度交换_“lazy”的transpose()函数——从numpy 数组的内存布局讲起
- file_operations结构体
- Haproxy 管控台介绍
- 模拟天天酷跑游戏java_cocos2d 简单高仿天天酷跑游戏
- 参与社团活动的意义_大学参加社团活动有意义吗?
- 30分钟彻底弄懂flex布局
- 【笔记】vim如何删除重复行
- 英语音标、发音技巧、浊化规则
- Power BI 企业邮箱账户注册
- 热门在线项目管理工具
- 阿里云服务器|centos查看并发数调优
- 韩国首发元宇宙 5 年计划,市民可戴 VR 头显见政府官员
- 影视剧广告植入,对于品牌宣传有怎样的效果?
- Vista笔记本通过神州行手机无线上网
- facebook新闻页ListView优化
热门文章
- 万达与IBM联手发力公有云市场,为不让马云当首富王健林也是拼了
- 2020年物联网网络容量至少是目前的1000倍
- 深入探索.NET框架内部了解CLR如何创建运行时对象
- sql里判断字段是否为空值
- Oracle性能误区--MTS,RAC,分区,并行查询
- Android仿网易新闻导航栏PagerSlidingTabStrip
- Use a layout_width of 0dip instead of fill_parent for better performance
- Android 颜色设置:透明度换算
- Android Studio缓存文件夹配置
- struts2通过基于XML的配置实现校验没有提示信息