C#上传图片或文件到七牛云并返回当前图片或文件的外链地址

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Qiniu;
using Qiniu.IO;
using Qiniu.IO.Model;
using Qiniu.RS;
using Qiniu.Util;
using Qiniu.Http;


namespace 资源包下载专用项目
{
    public static class qiniu_img
    {
        private static string imgUrRL = "http://p0f3oob2z.bkt.clouddn.com/";
        #region //弃用
        //        //Mac mac = new Mac(AccessKey, SecretKey);
        //        // 上传文件名
        //        string key = "key";
        //        // 本地文件路径
        //        string filePath = "D:\\tools\\putty.exe";
        //        // 存储空间名
        //        string Bucket = "7qiniu";


        //        PutPolicy putPolicy = new PutPolicy();
        //        putPolicy.
        //        putPolicy.Scope = Bucket;
        //putPolicy.SetExpires(3600);
        //putPolicy.DeleteAfterDays = 1;
        //string token = Auth.CreateUploadToken(mac, putPolicy.ToJsonString());


        //        Config config = new Config();
        //        // 设置上传区域
        //        config.Zone = Zone.ZONE_CN_East;
        设置 http 或者 https 上传
        //config.UseHttps = true;
        //config.UseCdnDomains = true;
        //config.ChunkSize = ChunkUnit.U512K;
        表单上传
        //FormUploader target = new FormUploader(config);
        //        HttpResult result = target.UploadFile(filePath, key, token, null);
        //        Console.WriteLine("form upload result: " + result.ToString());
        #endregion
        #region 
        // AK = ACCESS_KEY
        // USE_HTTPS = (true|false) 是否使用HTTPS
        // 使用前请确保AK和BUCKET正确,否则此函数会抛出异常(比如code612/631等错误)
        //Qiniu.Common.Config.AutoZone(AK,BUCKET,USE_HTTPS);
        /// <summary>
        /// 简单上传-上传小文件
        /// 注意:上传成功时返值为对应文件外链地址
        /// 上传失败时返回值为 false
        /// 请自行判断
        /// </summary>
        public static object UploadFile(string imgUrl)
        {


            //获取图片路径并处理获取图片名称
            string[] imgName_Array= imgUrl.Split('\\');
            //获取图片名称
            string imgName = imgName_Array[imgName_Array.Length-1].Split('.')[((imgName_Array[imgName_Array.Length - 1].Split('.')).Length-2)];
            //设置AK
            Settings.AccessKey = "ChLJ1VB7R3TFgdbSOqI1OPWsZP14ROAYyhmHVcF8";
            //设置SK
            Settings.SecretKey = "pDqd5ydFwyxudr-UMV4TRSV0W33SA3FJdwV4eJj";
            try
            {
                #region //上传图片到七牛云
                // 生成(上传)凭证时需要使用此Mac
                // 这个示例单独使用了一个Settings类,其中包含AccessKey和SecretKey
                // 实际应用中,请自行设置您的AccessKey和SecretKey
                Mac mac = new Mac(Settings.AccessKey, Settings.SecretKey);
                string bucket = "my-img-171204";
                //自定义组合外链图片名称
                string saveKey = imgName + "qiniu" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day;
                //上传图片的物理路径
                string localFile = imgUrl;
                // 上传策略,参见 
                // https://developer.qiniu.com/kodo/manual/put-policy
                PutPolicy putPolicy = new PutPolicy();
                // 如果需要设置为"覆盖"上传(如果云端已有同名文件则覆盖),请使用 SCOPE = "BUCKET:KEY"
                // putPolicy.Scope = bucket + ":" + saveKey;
                putPolicy.Scope = bucket;
                // 上传策略有效期(对应于生成的凭证的有效期)          
                putPolicy.SetExpires(3600);
                // 上传到云端多少天后自动删除该文件,如果不设置(即保持默认默认)则不删除
                //putPolicy.DeleteAfterDays = 1;
                // 生成上传凭证,参见
                // https://developer.qiniu.com/kodo/manual/upload-token            
                string jstr = putPolicy.ToJsonString();
                string token = Auth.CreateUploadToken(mac, jstr);
                UploadManager um = new UploadManager();
                HttpResult result = um.UploadFile(localFile, saveKey, token);
                #endregion
                return imgUrRL + saveKey;
            }
            catch
            {
                return "上传失败,请检查文件物理路径是否出错!";
            }
            //Console.WriteLine(result);
        }


        #endregion


    }
    /// <summary>
    /// 自定义Settings类用来存放AK和SK
    /// </summary>
    public static class Settings
    {
        public static string AccessKey { get; set; }
        public static string SecretKey { get; set; }
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值