//封装类代码
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Qiniu.Conf; using Qiniu.RS; using Qiniu.RPC; using Qiniu.RSF; using Qiniu.IO; using Qiniu.IO.Resumable; using System.IO; using System.Web; using System.Drawing.Imaging; using Qiniu.FileOp; using System.Net; //要先引用qiniu的dll文件 namespace ypsuit.common.QiniuHelper { public class QiniuHelper { /// <summary> /// cdnPath为网站服务器本地路径,本地备份一份,再上传到七牛空间一份 /// </summary> private static readonly string cdnPath = DataHelper.GetAbsolutePath(CommonFun.GetConfigData(DataConfigKey.Qiniu.ToString(), DataConfigAttr.CDN_PATH.ToString())); /// <summary> /// 空间名 /// </summary> public static readonly string bucket = CommonFun.GetConfigData(DataConfigKey.Qiniu.ToString(), DataConfigAttr.BUCKET.ToString()); /// <summary> /// 七牛外域名 /// </summary> public static readonly string Domain = CommonFun.GetConfigData(DataConfigKey.Qiniu.ToString(), DataConfigAttr.DOMAIN.ToString()); /// <summary> /// 在网站/程序初始化时调用一次 /// </summary> public static void Init() { //设置权限key Qiniu.Conf.Config.ACCESS_KEY = CommonFun.GetConfigData(DataConfigKey.Qiniu.ToString(), DataConfigAttr.ACCESS_KEY.ToString()); //设置密匙key Qiniu.Conf.Config.SECRET_KEY = CommonFun.GetConfigData(DataConfigKey.Qiniu.ToString(), DataConfigAttr.SECRET_KEY.ToString()); } #region 查看单个文件属性信息 /// <summary> /// 查看单个文件属性信息 /// </summary> /// <param name="bucket">七牛云存储空间名</param> /// <param name="key">文件key</param> public static void Stat(string bucket, string key) { RSClient client = new RSClient(); Entry entry = client.Stat(new EntryPath(bucket, key)); if (entry.OK) { Console.WriteLine("Hash: " + entry.Hash); Console.WriteLine("Fsize: " + entry.Fsize); Console.WriteLine("PutTime: " + entry.PutTime); Console.WriteLine("MimeType: " + entry.MimeType); Console.WriteLine("Customer: " + entry.Customer); } else { Console.WriteLine("Failed to Stat"); } } #endregion /// <summary> /// 复制单个文件 /// </summary> /// <param name="bucketSrc">需要复制的文件所在的空间名</param> /// <param name="keySrc">需要复制的文件key</param> /// <param name="bucketDest">目标文件所在的空间名</param> /// <param name="keyDest">标文件key</param> public static void Copy(string bucketSrc, string keySrc, string bucketDest, string keyDest) { RSClient client = new RSClient(); CallRet ret = client.Copy(new EntryPathPair(bucketSrc, keySrc, bucketDest, keyDest)); if (ret.OK) { Console.WriteLine("Copy OK"); } else { Console.WriteLine("Failed to Copy"); } } /// <summary> /// 移动单个文件 /// </summary> /// <param name="bucketSrc">需要移动的文件所在的空间名</param> /// <param name="keySrc">需要移动的文件</param> /// <param name="bucketDest">目标文件所在的空间名</param> /// <param name="keyDest">目标文件key</param> public static void Move(string bucketSrc, string keySrc, string bucketDest, string keyDest) { Console.WriteLine(" ===> Move {0}:{1} To {2}:{3}", bucketSrc, keySrc, bucketDest, keyDest); RSClient client = new RSClient(); new EntryPathPair(bucketSrc, keySrc, bucketDest, keyDest); CallRet ret = client.Move(new EntryPathPair(bucketSrc, keySrc, bucketDest, keyDest)); if (ret.OK) { Console.WriteLine("Move OK"); } else { Console.WriteLine("Failed to Move"); } } /// <summary> /// 删除单个文件 /// </summary> /// <param name="bucket">文件所在的空间名</param> /// <param name="key">文件key</param> public static void Delete(string bucket, string key) { //Console.WriteLine(" ===> Delete {0}:{1}", bucket, key); RSClient client = new RSClient(); CallRet ret = client.Delete(new EntryPath(bucket, key)); //if (ret.OK) //{ // Console.WriteLine("Delete OK"); //} //else //{ // Console.WriteLine("Failed to delete"); //} } /// <summary> /// 批量获取文件信息 /// </summary> /// <param name="bucket"></param> /// <param name="keys"></param> public static void BatchStat(string bucket, string[] keys) { RSClient client = new RSClient(); List<EntryPath> EntryPaths = new List<EntryPath>(); foreach (string key in keys) { Console.WriteLine(" ===> Stat {0}:{1}", bucket, key); EntryPaths.Add(new EntryPath(bucket, key)); } client.BatchStat(EntryPaths.ToArray()); } /// <summary> /// 批量复制 /// </summary> /// <param name="bucket"></param> /// <param name="keys"></param> public static void BatchCopy(string bucket, string[] keys) { List<EntryPathPair> pairs = new List<EntryPathPair>(); foreach (string key in keys) { EntryPathPair entry = new EntryPathPair(bucket, key, Guid.NewGuid().ToString()); pairs.Add(entry); } RSClient client = new RSClient(); client.BatchCopy(pairs.ToArray()); } /// <summary> /// 批量移动 /// </summary> /// <param name="bucket"></param> /// <param name="keys"></param>