AWS S3服务使用
AWS S3是亚马逊的一种文件存储服务使用方便。
一、配置服务
public static class AWS_S3ClientInfo
{
private static readonly string awsAccessKey = "AKIAJOXFZDXXXXX"; private static readonly string awsSecretKey = "6s2AGbNYmhF4xeXXXXXXXXX/"; public static readonly string bucketName = "test"; //提供最基本的一个配置
public static AmazonS3Config config = new AmazonS3Config()
{
//这个地址是固定的,可以不写
//ServiceURL = "http://s3.amazonaws.com", //因为aws服务器是分地区的,这里如果不配置区域会一直报错,还找不到头绪。
RegionEndpoint = RegionEndpoint.APSoutheast1, }; public static IAmazonS3 GetS3ClientInfo()
{
return new AmazonS3Client(awsAccessKey, awsSecretKey, config);
} }
二、调用上传服务
public void UpLoadFile()
{
try
{
using (IAmazonS3 s3Client = AWS_S3ClientInfo.GetS3ClientInfo())
{
var bt = File.ReadAllBytes(AppDomain.CurrentDomain.BaseDirectory + "../../img/a.txt");
var mm= new MemoryStream(bt);
PutObjectRequest putObjectRequest = new PutObjectRequest();
putObjectRequest.InputStream = mm;
//可以上传string类型
//putObjectRequest.ContentBody = "你好!";
putObjectRequest.BucketName = AWS_S3ClientInfo.bucketName;
putObjectRequest.ContentType = "application/octet-stream";
putObjectRequest.Metadata.Add("Access-Control-Allow-Origin", "*");
//文件的路径
putObjectRequest.Key = $"img/test-6.jpg";
//文件权限
putObjectRequest.CannedACL = S3CannedACL.PublicRead; PutObjectResponse putObjectResponse = s3Client.PutObject(putObjectRequest); mm.Dispose();
Console.WriteLine("结果=" + putObjectResponse.HttpStatusCode); }
}
catch (Exception e)
{
Console.WriteLine("Exception message: {0}", e.Message);
}
}
三、下载服务
using (IAmazonS3 s3Client = AWS_S3ClientInfo.GetS3ClientInfo())
{
GetObjectRequest request = new GetObjectRequest()
{
BucketName = AWS_S3ClientInfo.bucketName,
Key = "s3.txt"
};
//下载
GetObjectResponse response = s3Client.GetObject(request);
response.WriteResponseStreamToFile(AppDomain.CurrentDomain.BaseDirectory + "1.txt");
}
四、删除服务
using (IAmazonS3 s3Client = AWS_S3ClientInfo.GetS3ClientInfo())
{
GetObjectRequest request = new GetObjectRequest()
{
BucketName = AWS_S3ClientInfo.bucketName,
Key = "s3.txt"
}; //删除
s3Client.DeleteObject(request.BucketName, request.Key); }
这个服务在Windows平台上没问题,在linux平台上上传不了,需要添加忽略证书
//忽略验证ssl/tls证书
ServicePointManager.ServerCertificateValidationCallback =(sender, certificate, chain, errors) => true;
AWS S3服务使用的更多相关文章
- Swift是一个提供RESTful HTTP接口的对象存储系统,目的是为了提供一个和AWS S3竞争的服务
Swift是一个提供RESTful HTTP接口的对象存储系统,最初起源于Rackspace的Cloud Files,目的是为了提供一个和AWS S3竞争的服务. Swift于2010年开源,是Ope ...
- AWS S3 对象存储服务
虽然亚马逊云非常牛逼,虽然亚马逊云财大气粗,虽然亚马逊用的人也非常多,可是这个文档我简直无法接受,特别是客服,令人发指的回复速度,瞬间让人无语,可是毕竟牛逼.忍了,躺一次坑而已 1.图片上传 1.1 ...
- AWS专线服务总结和疑问
1.AWS专线服务的入口, 从介绍页上可以看到,有如下功能: (1)专线可以连接AWS云主机和传统的数据中心或者分支机构. (2)专线可以连接AWS云主机和托管区的主机. 连接要素: (1)需要使用V ...
- Aws云服务EMR使用
Aws云服务EMR使用 创建表结构 创建abc库下的abc_user_i表字段s3://abc-server/abc-emr/shell/ABC_USER_HIVE.q: EXTERNAL 指定为外部 ...
- storj白皮书v3最全面解读,Docker创始人的加入能否扳倒AWS S3
Storj新发了白皮书v3,地址是:https://storj.io/storjv3.pdf. 这次白皮书一共有90页,看完还真要费不少时间.如果你没有时间看,可以看一下我这篇快速技术解读. 上次St ...
- 使用curl进行s3服务操作
最近使用curl对s3进行接口测试,本想写个总结文档,但没想到已有前辈写了,就直接搬过来做个记录吧,原文见: http://blog.csdn.net/ganggexiongqi/article/de ...
- Amazon AWS S3 操作手册
Install the SDK The recommended way to use the AWS SDK for Java in your project is to consume it fro ...
- Node开发文件上传系统及向七牛云存储和亚马逊AWS S3的文件上传
背景起,有奏乐: 有伟人曰:学习技能的最好途径莫过于理论与实践相结合. 初学Node这货时,每每读教程必会Fall asleep. 当真要开发系统时,顿觉精神百倍,即便踩坑无数也不失斗志. 因为同团队 ...
- [转帖]通俗解释 AWS 云服务每个组件的作用
你有听说过 ContainerCache,ElastiCast 和 QR72 这些 AWS 的新服务吗? 没有就对了,这些都是我编的:) 不过,AWS 有 50 多个服务,从名称也不能看出这些服务是做 ...
随机推荐
- JavaScript基础入门 - 01
JavaScript入门 - 01 准备工作 在正式的学习JavaScript之前,我们先来学习一些小工具,帮助我们更好的学习和理解后面的内容. js代码位置 首先是如何编写JavaScript代码, ...
- python学习日记(模块导入)
什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的代码(.p ...
- Spring定时器配置与运用,及Cron表达式的详解
一:首先在spring的配置文件里配置一个定时器 <task:executor id="executor" pool-size="5" /> < ...
- 通用的C#导出Excel 支持2003及2007以上版本
将数据导出到Excel,供用户下载是经常要使用到的一个功能,我这里进行了一些封装,目前已满足项目中导出的需求,使用DataReader导出Excel,支持自定义多表头,使用委托处理字段格式化及字段值的 ...
- [HNOI2007]神奇游乐园(插头DP)
题意:n*m的矩阵内值有正有负,找一个四连通的简单环(长度>=4),使得环上值的和最大. 题解:看到2<=m<=6和简单环,很容易想到插头DP,设f[i][j][k]表示轮廓线为第i ...
- Transformer【Attention is all you need】
前言 Transfomer是一种encoder-decoder模型,在机器翻译领域主要就是通过encoder-decoder即seq2seq,将源语言(x1, x2 ... xn) 通过编码,再解码的 ...
- 保护代理模式-Access Proxy(Java实现)
保护代理模式-Access Proxy 保护代理模式(Access Proxy), 也叫Protect Proxy. 这种代理用于对真实对象的功能做一些访问限制, 在代理层做身份验证. 通过了验证, ...
- 轻型Database- sqlite入门
SQLite 是一个软件库,实现了自给自足的.无服务器的.零配置的.事务性的 SQL 数据库引擎.SQLite 是在世界上最广泛部署的 SQL 数据库引擎.SQLite 源代码不受版权限制. 下面跟着 ...
- Hadoop yarn任务调度策略介绍(转)
理想情况下,我们应用对Yarn资源的请求应该立刻得到满足,但现实情况资源往往是有限的,特别是在一个很繁忙的集群,一个应用资源的请求经常需要等待一段时间才能的到相应的资源.在Yarn中,负责给应用分配资 ...
- vmware虚拟机磁盘挂载
执行mount命令时找不到介质或者mount:no medium found的解决办法 使用vmware时,在虚拟机设置里,设置CD/DVD为系统镜像,挂载时,有时会有找不到介质或者no medium ...