博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.NET Core AWS S3云存储
阅读量:4034 次
发布时间:2019-05-24

本文共 2066 字,大约阅读时间需要 6 分钟。

【导读】最近有需要用到AWS S3云存储上传附件,这里对利用.NET或.NET Core在调用SDK APi需要注意的一点小问题做个记录,或许能对后续有用到的童鞋提供一点帮助

Amazon Simple Storage Service (Amazon S3) 是一种对象存储服务,提供行业领先的可扩展性、数据可用性、安全性和性能。

这意味着各种规模和行业的客户都可以使用 S3 来存储并保护各种用例(如数据湖、网站、移动应用程序、备份和还原、存档、企业应用程序、IoT 设备和大数据分析)的数据,容量不限。Amazon S3 提供了易于使用的管理功能,因此您可以组织数据并配置精细调整过的使用权限控制,从而满足特定的业务、组织和合规性要求。Amazon S3 可达到 99.999999999%(11 个 9)的持久性,并为全球各地的公司存储数百万个应用程序的数据。

AWS S3云存储

官方已提供针对.NET/.NET Core针对S3的APi

https://docs.aws.amazon.com/sdkfornet/v3/apidocs/

以及SDK demo

https://github.com/awslabs/aws-sdk-net-samples

首先我们下载针对.NET Core的SDK包(AWSSDK.Core)以及通过S3存储对象包(AWSSDK.S3),如下图所示

接下来我们再利用官方所给SDK Demo,如下:

using (client = new AmazonS3Client(RegionEndpoint.USWest2)){      Console.WriteLine("Listing buckets");    ListingBuckets();    Console.WriteLine("Creating a bucket");    CreateABucket();        ......}

因为上述构造S3客户端直接使用地区,所以此时并不能直接复制拿来使用,AWS S3上传附件要提供上传凭证和配置

一般情况下我们都是利用如下构造

public AmazonS3Client(AWSCredentials credentials, AmazonS3Config clientConfig);

因凭证就是AK/SK,我们也可直接提供AK、SK,如下构造,一切根据实际业务对接情况而具体分析

public AmazonS3Client(string awsAccessKeyId, string awsSecretAccessKey, AmazonS3Config clientConfig);

通过官网介绍,凭证可以通过配置文件、环境变量等等共享,这一块并不是重点,未细看,请忽略,我直接将其存放到配置文件中。最终构造AWSS3Client,如下代码:

//提供awsAccessKeyId和awsSecretAccessKey构造凭证var credentials = new BasicAWSCredentials(awsAccessKeyId, awsSecretAccessKey);//提供awsEndPoint(域名)进行访问配置var clientConfig = new AmazonS3Config{    ServiceURL = awsEndPoint};var amazonS3Client = new AmazonS3Client(credentials, clientConfig);

AWS提供了常用的ReginEndPoint,但若对接方提供了自定义Region,则需通过如下配置获取RegionEndPoint,参数地区awsRegion比如为cn.south.shenzhen

var clientConfig = new AmazonS3Config{    RegionEndpoint = RegionEndpoint.GetBySystemName(awsRegion),    ServiceURL = awsEndPoint};

此时再运行将会抛出如下异常:

针对上述访问配置,继续配置ForcePathStyle为true,说明请求都将采用路径风格地址,根据猜测因为我们使用指定域名(ServiceURL)来发送请求,所以必须要指定此属性。

var clientConfig = new AmazonS3Config{    RegionEndpoint = RegionEndpoint.GetBySystemName(awsRegion),    ServiceURL = awsEndPoint,    ForcePathStyle = true};

????  .NET Core使用AWS S3云存储 ,无非就是APi调用侠,没啥技术含量,只不过需要稍稍需注意以上两个小问题就好,继而则可对桶、对象进行相关业务逻辑操作

转载地址:http://lzudi.baihongyu.com/

你可能感兴趣的文章
01Java基础语法-16. while循环结构
查看>>
01Java基础语法-17. do..while循环结构
查看>>
01Java基础语法-18. 各种循环语句的区别和应用场景
查看>>
01Java基础语法-19. 循环跳转控制语句
查看>>
Django框架全面讲解 -- Form
查看>>
socket,accept函数解析
查看>>
今日互联网关注(写在清明节后):每天都有值得关注的大变化
查看>>
”舍得“大法:把自己的优点当缺点倒出去
查看>>
[今日关注]鼓吹“互联网泡沫,到底为了什么”
查看>>
[互联网学习]如何提高网站的GooglePR值
查看>>
[关注大学生]求职不可不知——怎样的大学生不受欢迎
查看>>
[关注大学生]读“贫困大学生的自白”
查看>>
[互联网关注]李开复教大学生回答如何学好编程
查看>>
[关注大学生]李开复给中国计算机系大学生的7点建议
查看>>
[关注大学生]大学毕业生择业:是当"鸡头"还是"凤尾"?
查看>>
[茶余饭后]10大毕业生必听得歌曲
查看>>
gdb调试命令的三种调试方式和简单命令介绍
查看>>
C++程序员的几种境界
查看>>
VC++ MFC SQL ADO数据库访问技术使用的基本步骤及方法
查看>>
VUE-Vue.js之$refs,父组件访问、修改子组件中 的数据
查看>>