/*
OSS
帮助类
*/
using Aliyun.OSS; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace OSSDemo { public class OSSClientHelper { const string accessKeyId = ""; const string accessKeySecret = ""; const string endpoint = "http://oss-cn-beijing.aliyuncs.com"; const string bucketName = "";// public static OssClient GetClient() { return new OssClient(endpoint, accessKeyId, accessKeySecret); } /// <summary> /// 上传一个图片 /// </summary> /// <param name="base64Code">图片经过base64加密后的结果</param> /// <param name="fileName">文件名,例如:Emplyoee/dzzBack.jpg</param> public static bool PushImg(string base64Code, string fileName) { try { var client = GetClient(); MemoryStream stream = new MemoryStream(Convert.FromBase64String(base64Code)); return client.PutObject(bucketName, fileName, stream).HttpStatusCode== System.Net.HttpStatusCode.OK; } catch (Exception) { } return false; } /// <summary> /// 上传一个图片 /// </summary> /// <param name="filebyte">图片字节 </param> /// <param name="fileName">文件名,例如:Emplyoee/dzzBack.jpg</param> public static bool PushImg(byte[] filebyte, string fileName) { try { var client = GetClient(); MemoryStream stream = new MemoryStream(filebyte,0,filebyte.Length); return client.PutObject(bucketName, fileName, stream).HttpStatusCode == System.Net.HttpStatusCode.OK; } catch (Exception) { } return false; } /// <summary> /// 获取鉴权后的URL,URL有效日期默认一小时 /// </summary> /// <param name="fileName">文件名,例如:Emplyoee/dzzBack.jpg</param> /// <returns></returns> public static string GetImg(string fileName) { var client = GetClient(); var key = fileName; var req = new GeneratePresignedUriRequest(bucketName, key, SignHttpMethod.Get) { Expiration = DateTime.Now.AddHours(1) }; return client.GeneratePresignedUri(req).ToString(); } /// <summary> /// 获取鉴权后的URL /// </summary> /// <param name="fileName">文件名,例如:Emplyoee/dzzBack.jpg</param> /// <param name="expiration">URL有效日期,例如:DateTime.Now.AddHours(1) </param> /// <returns></returns> public static string GetImg(string fileName, DateTime expiration) { var client = GetClient(); var key = fileName; var req = new GeneratePresignedUriRequest(bucketName, key, SignHttpMethod.Get) { Expiration = expiration }; return client.GeneratePresignedUri(req).ToString(); } } }
/*调用*/ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Aliyun.OSS; using System.IO; using System.Diagnostics; namespace OSSDemo { class Program { static void Main(string[] args) { string fileName = "IMEI/111.jpg"; //上传一张图片 var pushRes = OSSClientHelper.PushImg(File.ReadAllBytes(@"D:\1.jpg"), fileName); //获取临时URL 超时时间30秒 var url = OSSClientHelper.GetImg(fileName, DateTime.Now.AddSeconds(30)); Console.ReadKey(); } } }