当前位置:首页 > Windows程序 > 正文

AWS S3 API实现文件上传下载

2021-03-27 Windows程序

近日项目需要使用AWS S3的API实现文件的上传和下载功能,才发现网上关于.net实现该功能的文章不多,有几篇也都是很老版本的AWS的使用描述了,写法和封装的类等等都基本上报废了。虽然这样,但还是很感谢那几篇文章给我指点了方向。下面我就把实现API的方法提供给大家:

注:此API实现方法是基于AWSSDK.2.3.50.1版本实现的

1.首先必须拥有 Amazon Web Services 账户才能访问此服务,目前有一定流量的适用,,当流量超过之后会自动收费

2.根据提供的Access Key(访问密钥)和Secret Key(秘密密钥)还有 BucketName

private static readonly string _awsAccessKey = "Your Access Key "; private static readonly string _awsSecretKey = "Your Secret Key"; private static readonly string _bucketName = "Your Bucket Name";


3.提供最基本的一个配置,这个地址是固定的

AmazonS3Config config = new AmazonS3Config() { ServiceURL = "" };

4.普通上传方法(基于MVC框架):         


///<summary> /// 上传 /// </summary> /// <param name="file"></param> public void Upload(HttpPostedFileBase file) { using (client = new AmazonS3Client(_awsAccessKey, _awsSecretKey, config)) { var request = new PutObjectRequest() { BucketName = _bucketName, CannedACL = S3CannedACL.PublicRead, Key = string.Format("UPLOADS/{0}", file.FileName), InputStream = file.InputStream }; client.PutObject(request); } }


其中CannedACL = S3CannedACL.PublicRead设置上传文件的权限,即可读Key则为上传后的文件名或者唯一标示,这里的file.FileName是包含路径的,可以自己修改为自己希望保存的名称

另外两个不用解释了吧。哈哈,经测试,顺利通过,好高兴~~没有白研究

5.下面是下载方法:

public void Download() { using (client = new AmazonS3Client(_awsAccessKey, _awsSecretKey, config)) { GetObjectRequest request = new GetObjectRequest() { BucketName = _bucketName, Key = "Test" }; GetObjectResponse response = client.GetObject(request); response.WriteResponseStreamToFile("C:\\Users\\Documents\\backTitle.png"); } }


下载方法简单,不用多说了吧,经测试通过,哈哈~~高兴

 今天先提供这些哈,还需要研究一下多线程上传,改天一块提供多线程上传和其他方法。

 若有问题,还请留言,若有不对的地方,还请大侠指正

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/68457.html