亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

阿里云儲存代碼整理(由三卷天書整理)

2019-11-14 14:23:39
字體:
來源:轉載
供稿:網友

最近不是很忙,就看了下阿里云儲存,整理出來方法,為以后改版微笑話網內容多的時候用云儲存準備,現在貼出來,希望對大家有所幫助,本文有博客園 三卷天書原創,轉載請注明出處,謝謝!

直接貼代碼了,就一個幫助類,直接調用里面的方法就OK了的,如果有什么地方出錯,麻煩各位在回復區指出。

/// <summary>    /// 阿里云儲存幫助類(歡迎訪問www.weixh.net微笑話,幫我漲點人氣謝謝大家了)    /// </summary>    public class AliyunHelper    {        const string accessKeyId = "<your access key id>";        const string accessKeySecret = "<your access key secret>";        const string endpoint = "<valid host name>";        #region 上傳部分        /// <summary>        /// 簡單上傳文件        /// </summary>        /// <param name="file">上傳控件</param>        /// <param name="key">文件標識</param>        /// <param name="bucketName">空間名</param>        public static string AliyunUploadFile(FileUpload file, string key, string bucketName)        {            try            {                Stream sr = file.PostedFile.InputStream;                var client = new OssClient(endpoint, accessKeyId, accessKeySecret);                var result = client.PutObject(bucketName, key, sr);                return "succeeded";            }            catch (OssException ex)            {                return "上傳失敗:" + ex.ErrorCode;            }            catch (Exception ex)            {                return ex.Message;            }        }        /// <summary>        /// 簡單上傳文件        /// </summary>        /// <param name="file">上傳控件</param>        /// <param name="key">文件標識</param>        /// <param name="bucketName">空間名</param>        public static string AliyunUploadFile(HttpPostedFile file, string key, string bucketName)        {            try            {                Stream sr = file.InputStream;                var client = new OssClient(endpoint, accessKeyId, accessKeySecret);                var result = client.PutObject(bucketName, key, sr);                return "succeeded";            }            catch (OssException ex)            {                return "上傳失敗:" + ex.ErrorCode;            }            catch (Exception ex)            {                return ex.Message;            }        }        /// <summary>        /// 分片上傳        /// </summary>        /// <param name="bucketName">空間名</param>        /// <param name="key">唯一標識</param>        /// <param name="file">上傳控件</param>        /// <param name="partSize">每片大小(默認5MB)</param>        /// <returns></returns>        public static string AliyunUploadPart(string bucketName, string key, FileUpload file, int partSize = 5*1024*1024)        {            try            {                Stream sr = file.PostedFile.InputStream;                OssClient client = new OssClient(endpoint, accessKeyId, accessKeySecret);                client.PutBigObject(bucketName, key, sr, null, partSize);                return "succeeded";            }            catch (OssException ex)            {                return "上傳失敗:" + ex.ErrorCode;            }            catch (Exception ex)            {                return "上傳失敗:" + ex.Message;            }        }        /// <summary>        /// 分片上傳        /// </summary>        /// <param name="bucketName">空間名</param>        /// <param name="objectName">key</param>        /// <param name="fileToUpload">指定分片上傳文件路徑</param>        /// <param name="partSize">分片大?。▎挝唬鹤止潱?/span></param>        public static void UploadMultipart(String bucketName, String key, FileUpload file, int partSize = 5*1024*1024)        {            var uploadId = InitiateMultipartUpload(bucketName, key);            var partETags = UploadParts(bucketName, key, file, uploadId, partSize);            var completeResult = CompleteUploadPart(bucketName, key, uploadId, partETags);            //Console.WriteLine(@"Upload multipart result : " + completeResult.Location);        }        PRivate static string InitiateMultipartUpload(String bucketName, String objectName)        {            var request = new InitiateMultipartUploadRequest(bucketName, objectName);            OssClient client = new OssClient(endpoint, accessKeyId, accessKeySecret);            var result = client.InitiateMultipartUpload(request);            return result.UploadId;        }        private static List<PartETag> UploadParts(String bucketName, String objectName, FileUpload file, String uploadId, int partSize)        {            var fileSize = file.PostedFile.ContentLength;            var partCount = fileSize / partSize;            if (fileSize % partSize != 0)            {                partCount++;            }            var partETags = new List<PartETag>();            using (var sr = file.PostedFile.InputStream)            {                for (var i = 0; i < partCount; i++)                {                    var skipBytes = (long)partSize * i;                    sr.Seek(skipBytes, 0);                    var size = (partSize < fileSize - skipBytes) ? partSize : (fileSize - skipBytes);                    var request = new UploadPartRequest(bucketName, objectName, uploadId)                    {                        InputStream = sr,                        PartSize = size,                        PartNumber = i + 1                    };                    OssClient client = new OssClient(endpoint, accessKeyId, accessKeySecret);                    var result = client.UploadPart(request);                    partETags.Add(result.PartETag);                }            }            return partETags;        }        private static CompleteMultipartUploadResult CompleteUploadPart(String bucketName, String objectName, String uploadId, List<PartETag> partETags)        {            var completeMultipartUploadRequest =                new CompleteMultipartUploadRequest(bucketName, objectName, uploadId);            foreach (var partETag in partETags)            {                completeMultipartUploadRequest.PartETags.Add(partETag);            }            OssClient client = new OssClient(endpoint, accessKeyId, accessKeySecret);            return client.CompleteMultipartUpload(completeMultipartUploadRequest);        }        #endregion        #region URL訪問        /// <summary>        /// URL獲取        /// </summary>        /// <param name="bucketName"></param>        /// <param name="key"></param>        /// <returns></returns>        public static string GetUrlGet(string bucketName, string key)        {            var req = new GeneratePresignedUriRequest(bucketName, key, SignHttpMethod.Get)            {                Expiration = new DateTime().AddHours(1)            };            var client = new OssClient(endpoint, accessKeyId, accessKeySecret);            var uri = client.GeneratePresignedUri(req);            return uri.ToString();        }        /// <summary>        /// URL獲取        /// </summary>        /// <param name="bucketName"></param>        /// <param name="key"></param>        /// <param name="timeMinutes">過期時間(分)</param>        /// <returns></returns>        public static string GetUrlGet(string bucketName, string key, int timeMinutes)        {            var req = new GeneratePresignedUriRequest(bucketName, key, SignHttpMethod.Get)            {                Expiration = new DateTime().AddMinutes(timeMinutes)            };            var client = new OssClient(endpoint, accessKeyId, accessKeySecret);            var uri = client.GeneratePresignedUri(req);            return uri.ToString();        }        #endregion        #region 文件下載        /// <summary>        /// 從指定的OSS存儲空間中獲取指定的文件        /// </summary>        /// <param name="bucketName">要獲取的文件所在的存儲空間的名稱</param>        /// <param name="key">要獲取的文件的名稱</param>        /// <param name="fileToDownload">文件保存的本地路徑</param>        public static string GetObject(string bucketName, string key, string fileToDownload)        {            try            {                // 初始化OssClient                var client = new OssClient(endpoint, accessKeyId, accessKeySecret);                var obj = client.GetObject(bucketName, key);                using (var requestStream = obj.Content)                {                    byte[] buf = new byte[1024];                    var fs = File.Open(fileToDownload, FileMode.OpenOrCreate);                    var len = 0;                    while ((len = requestStream.Read(buf, 0, 1024)) != 0)                    {                        fs.Write(buf, 0, len);                    }                    fs.Close();                }                return "succeeded";            }            catch (Exception ex)            {                return ex.Message;            }        }        #endregion    }

轉載請注明出處。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久中文字幕一区| 国产亚洲在线播放| 国产亚洲欧美另类中文| 久久久亚洲欧洲日产国码aⅴ| 亚洲影院高清在线| 亚洲老头同性xxxxx| 欧美一区二区三区免费视| 亚洲第一精品自拍| 国产一区二区日韩精品欧美精品| 日韩电影在线观看永久视频免费网站| 在线亚洲国产精品网| 欧美日韩精品在线观看| 亚洲性线免费观看视频成熟| 精品国产欧美一区二区五十路| 亚洲精品一二区| 久久久免费观看视频| 日韩中文字幕免费视频| 亚洲大胆美女视频| 精品国产91乱高清在线观看| 国产精品视频自在线| 精品magnet| 久久夜色精品国产亚洲aⅴ| 久久久久久久成人| 精品调教chinesegay| 色噜噜狠狠色综合网图区| 啊v视频在线一区二区三区| 91福利视频在线观看| 中文字幕亚洲欧美日韩在线不卡| 欧美一级bbbbb性bbbb喷潮片| 久久久久久国产精品三级玉女聊斋| 亚洲欧美日韩成人| 久久av红桃一区二区小说| 亚洲色图综合网| 日韩av综合网站| 亚洲国产天堂久久综合| 日本精品久久久久影院| 丝袜亚洲欧美日韩综合| 欧美大尺度电影在线观看| 欧美电影免费观看高清完整| 久久国产一区二区三区| 欧美午夜激情视频| 国模精品视频一区二区| 亚洲激情第一页| 欧美—级a级欧美特级ar全黄| 欧美中文字幕在线播放| 亚洲乱码一区二区| 欧美网站在线观看| 亚洲国产精品成人av| 96sao精品视频在线观看| 精品国产精品自拍| 色悠久久久久综合先锋影音下载| 国产精品直播网红| 亚洲国产精品一区二区三区| 成人精品视频在线| 亚洲一区二区少妇| 国产欧美久久久久久| 日韩视频欧美视频| 久久久久久国产精品三级玉女聊斋| 国产精品18久久久久久首页狼| 国产日韩在线免费| 久久亚洲精品一区二区| 亚洲伊人第一页| 人人做人人澡人人爽欧美| 国产精品入口夜色视频大尺度| 久久久精品视频在线观看| 国产精品永久免费视频| 国内成人精品视频| 欧美激情久久久| 亚洲国产精品成人精品| 亚洲香蕉伊综合在人在线视看| 亚洲91精品在线| 国产999精品久久久| 日韩av一区二区在线| 欧美另类精品xxxx孕妇| 亚洲精品大尺度| 国产精品视频yy9099| 日韩精品极品视频免费观看| xxx成人少妇69| 国产亚洲精品91在线| 中文字幕亚洲综合久久筱田步美| 日韩精品在线视频| 亚洲成av人乱码色午夜| 成人黄色在线播放| 欧美与黑人午夜性猛交久久久| 欧美性极品少妇精品网站| 日韩亚洲第一页| 亚洲国产日韩欧美在线99| 久久在线免费观看视频| 2018中文字幕一区二区三区| 秋霞成人午夜鲁丝一区二区三区| 日本不卡视频在线播放| 国产ts一区二区| 欧美疯狂性受xxxxx另类| 青草成人免费视频| 亚洲一区二区少妇| 亚洲免费成人av电影| 精品无人区乱码1区2区3区在线| 亚洲综合精品伊人久久| 亚洲老头老太hd| 欧美激情综合色综合啪啪五月| 欧美老女人性生活| 欧美黑人xxxx| 最新国产成人av网站网址麻豆| 亚洲片在线资源| 精品久久久久久久久久久久久| 8090成年在线看片午夜| 亚洲国模精品私拍| 色www亚洲国产张柏芝| 中文字幕少妇一区二区三区| 中文字幕久久精品| 亚洲欧洲在线播放| 欧美小视频在线| 狠狠色香婷婷久久亚洲精品| 亚洲另类图片色| 欧美性猛交丰臀xxxxx网站| 日韩av手机在线看| 最近更新的2019中文字幕| 91精品国产91久久久久久| 亚洲第一精品夜夜躁人人爽| 欧美成人精品在线观看| 91午夜理伦私人影院| 国产视频精品一区二区三区| 日韩的一区二区| **欧美日韩vr在线| 亚洲精品自在久久| 亚洲精品国产成人| 欧美壮男野外gaytube| 亚洲三级免费看| 欧美精品激情在线观看| 亚洲18私人小影院| 日韩欧美国产免费播放| 欧美激情综合色综合啪啪五月| 国模精品视频一区二区三区| 日韩av不卡在线| 亚洲日韩第一页| 国产精品第10页| 亚洲天堂av网| 日韩在线播放视频| 久久久人成影片一区二区三区| 在线视频亚洲欧美| 91久久综合亚洲鲁鲁五月天| 亚洲福利在线视频| 国产91av在线| 国产精品一二区| 操日韩av在线电影| 日韩av高清不卡| 亚洲免费视频一区二区| 精品成人在线视频| 色综合色综合网色综合| 日韩影视在线观看| 欧日韩不卡在线视频| 国产ts人妖一区二区三区| 国产自产女人91一区在线观看| 夜夜嗨av一区二区三区免费区| 亚洲另类激情图| 伊是香蕉大人久久| 少妇高潮久久久久久潘金莲| 黑人巨大精品欧美一区二区免费| 国产精品www| 亚洲淫片在线视频| 欧美成人手机在线| 日av在线播放中文不卡| 热99精品里视频精品| 国产亚洲精品综合一区91|