码迷,mamicode.com
首页 > 其他好文 > 详细

阿里云OSS

时间:2017-01-12 02:38:19      阅读:768      评论:0      收藏:0      [点我收藏+]

标签:开始   row   let   pac   res   yun   产生   div   环境   

想将图片存储到阿里云上,尝试着了解了下阿里云的OSS。

文档地址:https://help.aliyun.com/?spm=5176.doc31837.201511181.1.TePvVX

.net 版本SDK 的github地址:https://github.com/aliyun/aliyun-oss-csharp-sdk?spm=5176.doc32085.2.4.kSjabk

贴个OSS开通的region 和endpoint 的图,地址:https://help.aliyun.com/document_detail/31837.html?spm=5176.2020520105.147.4.VZf3rn

技术分享

我这属于华东,最开始是用hangzhou那个endpoint尝试获取上传文件 ,发现报错了,原来是我创建的bucket 选择了华东2,所以要用shanghai那个

技术分享


OssClient client1 = new OssClient(endpoint2, accessKeyId, accessKeySecret); 
#region OSS文件操作

        /// <summary>
        /// 文件上传
        /// </summary>
        /// <param name="filename">文件的本地路径</param>
        /// <param name="keyname">存入OSS上的名字,后续用来获取图片地址用</param>
        /// <returns></returns>
        public PutObjectResult UploadFileToOSS(string filename, string keyname)
        {
            try
            {
                var reslut = client.PutObject(bucketname, keyname, filename);
                return reslut;
            }
            catch (Exception)
            {
                //MessageBox.Show("图片上传失败,文件名:"+filename+",keyname:"+keyname);
                throw new Exception("图片上传失败,文件名:" + filename + ",keyname:" + keyname);              
            }
        }
        /// <summary>
        /// 获取图片uri
        /// </summary>
        /// <param name="keyname">上传图片的keyname</param>
        /// <param name="process">需要对图片进行的操作,可空,eg:process = "image/resize,m_fixed,w_100,h_100"</param>
        /// <returns></returns>
        public string GetImgPath(string keyname, string process = null)
        {
            try
            {
                var req = new GeneratePresignedUriRequest(bucketname, key, SignHttpMethod.Get);

                if (!string.IsNullOrWhiteSpace(process))
                {
                    req.Process = process;
                    req.Expiration = DateTime.Now.AddSeconds(30 * 60);
                }

                // 产生带有签名的URI
                var uri = client.GeneratePresignedUri(req);
                return uri.ToString();
            }
            catch (Exception)
            {

                throw new Exception("图片获取失败,key:"+keyname);
            }
        }
        #endregion

  

其中 endpoint:就是上面访问文件的域名(可以试上面贴图中默认的也可以是自定义的)

key:是你上传文件后,访问该文件的名字。

 

由于我们的web段用的是.NET CORE 就研究了下JS 在浏览器段的上传,发现一定要进行签名才能上传成功,我不知道是不是哪里设置的不对,不过反正生产环境当中肯定得用签名的,所以就没去深究了。

浏览器端的上传我测试了两种,直接表单submit,还有就是ajax,都成功了,官方还给出了个使用插件上传的,那个方便就用哪个

贴个小demo,有winform的也有JS 浏览器上传文件的:https://github.com/huanglin101/ALiYunOSSDemo.git

 

阿里云OSS

标签:开始   row   let   pac   res   yun   产生   div   环境   

原文地址:http://www.cnblogs.com/huanglin101/p/6264442.html

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