码迷,mamicode.com
首页 > Windows程序 > 详细

AWS S3 API实现文件上传下载

时间:2015-08-14 17:07:12      阅读:914      评论:0      收藏:0      [点我收藏+]

标签:asp.net   aws   api   s3   

近日项目需要使用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 = "http://s3.amazonaws.com"
   };

 

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");
            }
        }


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

 

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

 

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

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

AWS S3 API实现文件上传下载

标签:asp.net   aws   api   s3   

原文地址:http://blog.csdn.net/marvin198801/article/details/47662965

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!