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 多个服务,从名称也不能看出这些服务是做 ...
随机推荐
- Hall定理 二分图完美匹配
充分性证明就先咕了,因为楼主太弱了,有一部分没看懂 霍尔定理内容 二分图G中的两部分顶点组成的集合分别为X, Y(假设有\(\lvert X \rvert \leq \lvert Y \rvert\) ...
- ScrollView & HorizontalScrollView
可垂直或水平滚动的列表 ScrollView & HorizontalScrollView内部只能有一个直接的子元素, <?xml version="1.0" enc ...
- JS学习笔记Day18
一.轮播图 二.重力弹球 三.计时器
- atool-build 打包项目报JavaScript heap out of memory 错误
出现这个问题的原因,是因为NodeJS给JavaScript设置了默认内存使用限制(32位系统下0.7GB,64位系统下1.4GB),就算我们的电脑内存是64GB的,在使用atool-build打包时 ...
- 【sql server】备份集中的数据库与现有数据库不同 解决方案
#事故现场: 在进行sql server 数据库还原的时候,报错如下: #解决方案: _________________________________________________________ ...
- I/O模型系列之一:Linux I/O模型基本概念
1. IO模型矩阵 基本 Linux I/O 模型的简单矩阵: 同步与异步:描述的是用户线程与内核的交互方式. 同步IO和异步IO的区别就在于:数据拷贝的时候进程是否阻塞! 同步是指用户线程发起IO请 ...
- Tomcat系列(10)——Tomcat主要设计模式5种(外观,责任链,观察者,模板方法,命令模式)
核心部分 外观模式: RequestFacade应用门面模式(facade)来封装HttpServletRequest. 观察者模式: 事件监听机制,控制组件生命周期的 Lifecycle .Serv ...
- 深入理解Java的三种工厂模式
一.简单工厂模式 简单工厂的定义:提供一个创建对象实例的功能,而无须关心其具体实现.被创建实例的类型可以是接口.抽象类,也可以是具体的类 实现汽车接口 public interface Car { S ...
- [Android] Android Build 时报错: java.io.IOException: Could not parse XML from android/accounts/annotations.xml
Android构建时报错: app:lintVitalRelease[Fatal Error] :3:214: 与元素类型 “item” 相关联的 “name” 属性值不能包含 ‘<’ 字符. ...
- Java装箱的 " == " 的问题
装箱和拆箱 packagecom.xzj.Test; /* * @ author thisxzj * @ create 2019-02-25 10:56 */ publicclassBase{ ...