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;

关于忽略证书

关于S3文档

S3的SDK

AWS的RegionEndpoint集合

最新文章

  1. Linux下安装流量监控工具iftop
  2. javascript中的正则表达式学习
  3. 正则表达式学习笔记(附:Java版示例代码)
  4. python命令行参数
  5. Android开发之获取系统版本号
  6. JAVA与网络开发(TCP:Socket、ServerSocket;UDP:DatagramSocket、DatagramPacket;多线程的C/S通讯、RMI开发概述)
  7. js控制select数据绑定下拉列表
  8. RunJS推荐用于个人使用(使用方便JS、css实时预览、编辑、管理等功能)
  9. 纯Python综合图像处理小工具(4)自定义像素级处理(剪纸滤镜)
  10. spring boot下使用logback或log4j生成符合Logstash标准的JSON格式
  11. Java语言之循环基础;各个语句的区别
  12. linux使用.net core 创建简单的MVC
  13. 欲善其工必先利其器-----ThinkPad E430加装SSD固态硬盘和内存
  14. 关于expect的实战总结
  15. TotoiseSVN 使用参考文章
  16. 移动IP 它最初设想每个人都在编写应用层(7)API而不是传输层(4)API 对于QUIC,连接的标识符不是“套接字”(源/目标端口/地址协议组合)的传统概念,而是分配给连接的64位标识符
  17. discuz模板引擎
  18. IntelliJ IDEA 设置代码提示或自动补全的快捷键(Alt+/)
  19. 899F - Letters Removing
  20. mybatis 传递多个值的解决办法

热门文章

  1. 2059 - Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(../Frameworks/caching_sha2_password.so, 2): image not found
  2. python学习日记(继承和多态)
  3. 自动化测试框架【windows版】:JMeter + Ant + Jenkins
  4. shiro多Realm第一次调用不生效问题
  5. FFT & FNT 简要整理
  6. I/O模型系列之二:Unix的五种网络I/O模型
  7. Python:Mac 下 MQTT 服务器 Mosquitto 的配置
  8. jQuery使用():Deferred有状态的回调列表(含源码)
  9. 开源顶级持久层框架——mybatis(ibatis)——day01
  10. html的分类与特点