示例#1
0
        public void PutTest()
        {
            IOClient target = new IOClient();
            string   key    = NewKey;

            PrintLn(key);
            PutExtra extra = new PutExtra(); // TODO: 初始化为适当的值

            extra.MimeType = "text/plain";
            extra.Crc32    = 123;
            extra.CheckCrc = CheckCrcType.CHECK;
            extra.Params   = new System.Collections.Generic.Dictionary <string, string>();
            PutPolicy put = new PutPolicy(Bucket);

            target.PutFinished += new EventHandler <PutRet>((o, e) =>
            {
                if (e.OK)
                {
                    RSHelper.RSDel(Bucket, key);
                }
            });
            string token = put.Token();
            PutRet ret   = target.Put(put.Token(), key, StreamEx.ToStream("Hello, Qiniu Cloud!"), extra);

            Assert.IsTrue(ret.OK, "PutFileTest Failure");
        }
示例#2
0
        public static async Task <List <string> > RSPut(string bucket, int num)
#endif
        {
            IOClient target = new IOClient();
            string   key    = "csharp" + Guid.NewGuid().ToString();
            //PrintLn(key);
            PutExtra extra = new PutExtra();             // TODO: 初始化为适当的值

            extra.MimeType = "text/plain";
            PutPolicy     put     = new PutPolicy(bucket);
            List <string> newKeys = new List <string>();

            for (int i = 0; i < num; i++)
            {
                key = "csharp" + Guid.NewGuid().ToString();
#if NET20 || NET40
                PutRet ret = target.Put(put.Token(), key, StreamEx.ToStream("Hello, Qiniu Cloud!"), extra);
#else
                PutRet ret = await target.PutAsync(put.Token(), key, StreamEx.ToStream("Hello, Qiniu Cloud!"), extra);
#endif
                if (ret.OK)
                {
                    newKeys.Add(key);
                }
            }
            return(newKeys);
        }
示例#3
0
        /// <summary>
        /// Amr文件转Mp3
        /// </summary>
        /// <param name="fileName">文件名,aa.amr</param>
        /// <param name="stream">文件流</param>
        /// <param name="notifyUrl">七牛转码成功后用于接收通知的url</param>
        /// <returns>文件外链</returns>
        public static async Task <string> PutAmrToMp3Async(string fileName, Stream stream, string notifyUrl)
        {
            PutPolicy policy = new PutPolicy(_bucket, 3600);
            PutExtra  extra  = new PutExtra();
            IOClient  client = new IOClient();

            //对转码后的文件进行使用saveas参数自定义命名,也可以不指定,文件会默认命名并保存在当前空间。
            fileName = fileName.Split('.')[0] + ".mp3";
            string urlbase64 = Base64URLSafe.Encode(_bucket + ":" + fileName);

            //一般指文件要上传到的目标存储空间(Bucket)。若为“Bucket”,
            //表示限定只能传到该Bucket(仅限于新增文件);若为”Bucket:Key”,表示限定特定的文件,可修改该文件。
            policy.Scope = _bucket + ":" + fileName;
            // 可选。 若非0, 即使Scope为 Bucket:Key 的形式也是insert only.
            policy.InsertOnly = 0;
            // "|"竖线前是你要转换格式的命令;竖线后是转换完成后,文件的命名和存储的空间的名称!
            policy.PersistentOps = "avthumb/mp3/ab/128k/ar/44100/acodec/libmp3lame|saveas/" + urlbase64;
            //规定文件要在那个“工厂”进行改装,也就是队列名称!
            //policy.PersistentPipeline = "LittleBai";
            //音视频转码持久化完成后,七牛的服务器会向用户发送处理结果通知。这里指定的url就是用于接收通知的接口。
            //设置了`persistentOps`,则需要同时设置此字段
            policy.PersistentNotifyUrl = "http://wwwtest.rupeng.cn:9090/upload/uploadFile";

            string upToken = policy.Token();
            var    putRet  = await client.PutAsync(upToken, fileName, stream, extra);

            return(putRet.StatusCode == HttpStatusCode.OK ? $"{Config.API_HOST}/{putRet.key}" : null);
        }
示例#4
0
文件: Thumbnail.cs 项目: Hizcy/FenDa
    /// <summary>
    /// 上传七牛图片
    /// </summary>
    /// <param name="imgkey">图片名称</param>
    /// <param name="imgPath">图片路径</param>
    public static void uploadQinui(string imgkey, string imgPath)
    {
        try
        {
            //设置账号的AK和SK
            Qiniu.Conf.Config.ACCESS_KEY = AK;
            Qiniu.Conf.Config.SECRET_KEY = SK;
            IOClient target = new IOClient();
            PutExtra extra  = new PutExtra();
            //设置上传的空间
            String bucket = NAME;
            //设置上传的文件的key值
            String key = imgkey;

            //普通上传,只需要设置上传的空间名就可以了,第二个参数可以设定token过期时间
            PutPolicy put = new PutPolicy(bucket, 3600);

            //调用Token()方法生成上传的Token
            string upToken = put.Token();
            //调用PutFile()方法上传
            PutRet ret = target.PutFile(upToken, key, imgPath, extra);
            if (!ret.OK)
            {
                Jnwf.Utils.Log.Logger.Log4Net.Error("error:uploadQinui:" + ret.OK + "|" + ret.Exception);
            }
        }
        catch (Exception ex)
        {
            Jnwf.Utils.Log.Logger.Log4Net.Error("error:uploadQinui:" + ex.Message + "|" + ex.InnerException);
        }
    }
示例#5
0
文件: Thumbnail.cs 项目: Hizcy/FenDa
    /// <summary>
    /// 上传七牛图片
    /// </summary>
    /// <param name="ak">AK</param>
    /// <param name="sk">SK</param>
    /// <param name="kname">上传的空间</param>
    /// <param name="imgkey">图片名称</param>
    /// <param name="imgPath">图片路径</param>
    public static void uploadQinui(string ak, string sk, string kname, string imgkey, string imgPath)
    {
        try
        {
            //设置账号的AK和SK
            Qiniu.Conf.Config.ACCESS_KEY = ak;
            Qiniu.Conf.Config.SECRET_KEY = sk;
            IOClient target = new IOClient();
            PutExtra extra  = new PutExtra();
            //设置上传的空间
            String bucket = kname;
            //设置上传的文件的key值
            String key = imgkey;

            //普通上传,只需要设置上传的空间名就可以了,第二个参数可以设定token过期时间
            PutPolicy put = new PutPolicy(bucket, 3600);

            //调用Token()方法生成上传的Token
            string upToken = put.Token();
            //上传文件的路径
            String filePath = imgPath;
            Jnwf.Utils.Log.Logger.Log4Net.Error("uploadQinui2:" + filePath + "");
            //调用PutFile()方法上传
            PutRet ret = target.PutFile(upToken, key, filePath, extra);
            Jnwf.Utils.Log.Logger.Log4Net.Error("uploadQinui1:" + ret + "");
        }
        catch (Exception ex)
        {
            Jnwf.Utils.Log.Logger.Log4Net.Error("error:uploadQinui:" + ex.Message + "|" + ex.InnerException);
        }
    }
示例#6
0
        public void TestuploadFile()
        {
            //设置上传的空间
            String bucket = "data-539go";
            //设置上传的文件的key值
            String key = "test.png";

            //普通上传,只需要设置上传的空间名就可以了,第二个参数可以设定token过期时间
            //PutPolicy put = new PutPolicy(bucket);
            PutPolicy put = new PutPolicy(bucket + ":" + key, 3600);

            //设置callbackUrl以及callbackBody,七牛将文件名和文件大小回调给业务服务器
            //            put.CallBackUrl = "http://your.domain.com/callback";
            //            put.CallBackBody = "filename=$(fname)&filesize=$(fsize)";

            //调用Token()方法生成上传的Token
            string upToken = put.Token();
            //上传文件的路径
            String filePath = @"D:\Personal\Desktop\test.png";

            PutRet ret = target.PutFile(upToken, key, filePath, extra);

            //打印出相应的信息
            //            Console.WriteLine(ret.Response.ToString());
            //            Console.WriteLine(ret.key);
            //            Console.ReadLine();
            MessageBox.Show(ret.key.ToString());
        }
示例#7
0
        public void uploadFile(String name, String filePath)
        {
            String key = name;

            //todo 添加日期
            //添加文件后缀
            Regex  regex = new Regex(@"\.(jpg|jpeg|bmp|png)");
            String str   = regex.Match(filePath).Value;

            if (str != "")
            {
                key = name + str;
            }
            else
            {
                MessageBox.Show("不支持的格式");
                return;
            }

            //覆盖上传
            PutPolicy put = new PutPolicy(bucket + ":" + key, 3600);

            //调用Token()方法生成上传的Token
            string upToken = put.Token();

            PutRet ret = target.PutFile(upToken, key, filePath, extra);

            //todo 上传成功的反馈
            //MessageBox.Show(ret.key.ToString());
        }
示例#8
0
        public String uploadImg(ImgFileMsg item)
        {
            String key = item.name;

            //todo 添加日期
            //添加文件后缀

            //Regex regex = new Regex(@"\.(jpg|jpeg|bmp|png)");
            Regex regex = Setting.getRegexForType();

            String str = regex.Match(item.path).Value;

            if (str != "")
            {
                key = dateStr + item.name + str;
            }
            else
            {
                Console.WriteLine("不支持的文件格式");
                return(null);
            }

            //覆盖上传
            PutPolicy put = new PutPolicy(bucket + ":" + key, 3600);

            //调用Token()方法生成上传的Token
            string upToken = put.Token();

            PutRet ret = target.PutFile(upToken, key, item.path, extra);

            //todo 上传成功的反馈
            //MessageBox.Show(ret.key.ToString());
            return(Setting.qiniuUrl + ret.key.ToString());
        }
示例#9
0
        /// <summary>
        /// 上传文件,普通上传(Put)
        /// </summary>
        /// <param name="bucket_name">设置上传的空间</param>
        /// <param name="stream">上传文件流数据</param>
        /// <param name="ext"></param>
        /// <returns></returns>
        public static string Upload(string bucket_name, Stream stream, string ext)
        {
            IOClient iOClient = new IOClient();
            PutExtra extra    = new PutExtra();

            PutPolicy putPolicy = new PutPolicy(bucket_name, 3600u);

            //设置上传的文件的key值
            string key = Guid.NewGuid().ToString("N") + "." + ext;

            string upToken = putPolicy.Token(null);

            PutRet putRet = iOClient.Put(upToken, key, stream, extra);

            string result;

            if (putRet == null)
            {
                result = null;
            }
            else
            {
                if (putRet.OK)
                {
                    result = key;
                }
                else
                {
                    result = null;
                }
            }
            return(result);
        }
示例#10
0
        /// <summary>
        /// 上传图片
        /// </summary>
        /// <param name="imgPhysicalPath"></param>
        /// <param name="imgkey">返回图片在七牛上的名称</param>
        /// <param name="isDelPhysicalPath">是否删除本地当前图片</param>
        /// <returns></returns>
        public bool UpLoadImage(string imgPhysicalPath, out string imgkey, bool isDelPhysicalPath = false)
        {
            imgkey = string.Empty;
            try
            {
                imgkey = GenerateQiniuKey;
                var      policy  = new PutPolicy(Bucket, 3600);
                string   upToken = policy.Token();
                PutExtra extra   = new PutExtra();
                extra.MimeType = "text/plain";
                extra.Crc32    = 123;
                extra.CheckCrc = CheckCrcType.CHECK;
                extra.Params   = new System.Collections.Generic.Dictionary <string, string>();

                IOClient client = new IOClient();

                client.PutFinished += new EventHandler <PutRet>((o, e) =>
                {
                    if (isDelPhysicalPath)
                    {
                        DeleteLocalImage(imgPhysicalPath);
                    }
                });
                PutRet ret = client.PutFile(upToken, imgkey, imgPhysicalPath, extra);
                imgkey = "/" + imgkey;

                return(ret.OK);
            }
            catch (Exception ex)
            {
                LogUtil.WriteLog(ex);
                return(false);
            }
        }
示例#11
0
        /// <summary>
        /// 上传图片
        /// </summary>
        /// <param name="imgkey">七牛显示名称(保持唯一性)</param>
        /// <param name="imgPhysicalPath"></param>
        /// <returns></returns>
        public bool UpLoadImage(string imgkey, string imgPhysicalPath)
        {
            try
            {
                var      policy  = new PutPolicy(Bucket, 3600);
                string   upToken = policy.Token();
                PutExtra extra   = new PutExtra();
                extra.MimeType = "text/plain";
                extra.Crc32    = 123;
                extra.CheckCrc = CheckCrcType.CHECK;
                extra.Params   = new System.Collections.Generic.Dictionary <string, string>();

                IOClient client = new IOClient();

                PutRet ret = client.PutFile(upToken, imgkey, imgPhysicalPath, extra);
                //client.PutFinished += new EventHandler<PutRet>((o,e)=>{
                //});

                return(ret.OK);
            }
            catch (Exception ex)
            {
                LogUtil.WriteLog(ex);
                return(false);
            }
        }
        /// <summary>
        /// 七牛URL上传
        /// </summary>
        /// <param name="filePath">图片绝对路径</param>
        /// <param name="fileKey">上传文件文件名(由于七牛不支持文件夹,可以在文件做手脚:比如:/aaa/xxx.jpg 这个一个合法文件名</param>
        /// <returns></returns>
        public static ApiModel <string> UploadStream(Stream stream, string fileKey /*设置上传的文件的key值*/)
        {
            //TODO:校验图片类型
            //stream.Position = 0;
            IOClient target = new IOClient();
            PutExtra extra  = new PutExtra();
            //设置上传的文件的key值
            //String key = "EDIT2/yourdefinekey3.PNG";
            //普通上传,只需要设置上传的空间名就可以了,第二个参数可以设定token过期时间  [:key覆盖上传]
            PutPolicy put = new PutPolicy(bucket + ":" + fileKey, 3600);
            //设置callbackUrl以及callbackBody,七牛将文件名和文件大小回调给业务服务器
            //put.CallBackUrl = "http://7xrpbe.com1.z0.glb.clouddn.com/callback";
            //put.CallBackBody = "filename=xxxxx.png&filesize=100";

            //调用Token()方法生成上传的Token
            string upToken = put.Token();
            //上传文件的路径
            //String filePath = p + @"\abc\7.png";

            //调用Put方法上传
            PutRet ret = target.Put(upToken, fileKey, stream, extra);

            return(new ApiModel <string>
            {
                ReturnValue = ret.OK ? (int)ErrorCode.Success : 0,
                DataModel = ret.key,
                Message = ret.Exception != null?ret.Exception.ToString() : ""
            });
        }
示例#13
0
        public void Test()
        {
            //设置账号的AK和SK
            Config.ACCESS_KEY = "8NXAoPOInRsnTVomjBKUC3KHCvfWfZFqRLenOANR";
            Config.SECRET_KEY = "xyQ7wcbLukoGUFFCV814PRU9HSf9S3gniEKs6E9M";

            //设置上传的空间
            string bucket = "helloworld";

            //普通上传,只需要设置上传的空间名就可以了,第二个参数可以设定token过期时间
            PutPolicy put = new PutPolicy(bucket, 3600);

            //调用Token()方法生成上传的Token
            string upToken = put.Token();

            //string upToken = @"APZpifSHJlh0TYB2UJRm5WXyo_zB4cF5oyUFrwu4:Os7lv0cv3ngPdcp3hAEyAWkpspU=:eyJzY29wZSI6InJvbmciLCJkZWFkbGluZSI6MTQ2OTA2OTM4NCwiaW5zZXJ0T25seSI6MCwiZGV0ZWN0TWltZSI6MCwiZnNpemVMaW1pdCI6MCwiZnNpemVNaW4iOjAsImNhbGxiYWNrRmV0Y2hLZXkiOjB9";
            ////string upToken = @"APZpifSHJlh0TYB2UJRm5WXyo_zB4cF5oyUFrwu4:dIynZd9Ln8Vz43x2Eo6j-Ugy5IA=:eyJzY29wZSI6InJvbmciLCJkZWFkbGluZSI6MTQ2OTA3MDEyMSwiaW5zZXJ0T25seSI6MCwiZGV0ZWN0TWltZSI6MCwiZnNpemVMaW1pdCI6MCwiZnNpemVNaW4iOjAsImNhbGxiYWNrRmV0Y2hLZXkiOjB9";

            //上传文件的路径
            string filePath = "UploadFiles/Helloworld.txt";
            //设置上传的文件的key值
            string key = "test_helloworld4.txt";

            IOClient target = new IOClient();
            PutExtra extra  = new PutExtra();
            //调用PutFile()方法上传
            PutRet ret = target.PutFile(upToken, key, filePath, extra);

            ret.OK.ShouldBe(true);

            //打印出相应的信息
            //var response = ret.Response.ToString();
            //var retKey = ret.key;
        }
示例#14
0
        public void UpLoadToQiNiu(Stream stream, string path)
        {
            IOClient target = new IOClient();
            PutExtra extra  = new PutExtra();

            //普通上传,只需要设置上传的空间名就可以了,第二个参数可以设定token过期时间
            PutPolicy put = new PutPolicy(bucket, 3600);

            //调用Token()方法生成上传的Token
            string upToken = put.Token();

            //上传文件的路径
            //String filePath = "/.../...";

            var _path = EnsureUrlSeparatorChar(path);

            //上传 将umbraco的path作为key传入
            PutRet ret = target.Put(upToken, _path, stream, extra);

            LogHelper.Info <PutRet>("上传至七牛云" + (ret.OK ? "成功" : "失败"));

            if (ret.OK)
            {
            }
            else
            {
                throw new Exception("上传失败");
            }
        }
示例#15
0
 public static Dictionary <string, object> GetQNToken()
 {
     lock (QNtokent)
     {
         if (QnDictionary.ContainsKey("uptoken"))
         {
             TimeSpan ts =
                 new TimeSpan(Convert.ToDateTime(QnDictionary["ctime"]).Ticks).Subtract(
                     new TimeSpan(DateTime.Now.Ticks)).Duration();
             if (ts.TotalMinutes > 55)
             {
                 Config.Init();
                 PutPolicy put = new PutPolicy(bucket, 3600);
                 QnDictionary["uptoken"] = put.Token();
             }
             return(QnDictionary);
         }
         else
         {
             Config.Init();
             //普通上传,只需要设置上传的空间名就可以了,第二个参数可以设定token过期时间
             PutPolicy put = new PutPolicy(bucket, 3600);
             //调用Token()方法生成上传的Token
             string upToken = put.Token();
             QnDictionary.Add("uptoken", upToken);
             QnDictionary.Add("ctime", DateTime.Now);
             QnDictionary.Add("bucket", bucket);
             QnDictionary.Add("imgurl", imgurl);
         }
         return(QnDictionary);
     }
 }
示例#16
0
 public static string PutFile(string bucket, string key, Stream stream)
 {
     try
     {
         var    scope   = bucket + ":" + key;
         var    policy  = new PutPolicy(scope);
         string upToken = policy.Token();
         var    extra   = new PutExtra();
         var    client  = new IOClient();
         var    ret     = client.Put(upToken, key, stream, extra);
         if (ret.OK)
         {
             return(string.Format(ConfigUtility.GetValue("QiNiuDomain"), bucket) + ret.key);
         }
         else
         {
             return("");
         }
     }
     catch (Exception e)
     {
         log4net.LogManager.GetLogger("ImageUpload").Error(e.Message);
         return("");
     }
 }
示例#17
0
        public string GetUploadToken(string type, string imgPara = "", long uid = 0)
        {
            string bucket;
            string domain;

            GetTokenAndDomain(type, out bucket, out domain);

            string entryKey = DESEncrypt.Encrypt(GetEncryptText(DateTime.Now));

            PutPolicy put = new PutPolicy(bucket, 8 * 60 * 60);

            put.CallBackUrl = "http://" + callBackUrl + "/api/QiniuUpload/Callback";

            string callBackBody = "BusinessType=" + type +
                                  "&WOBO=" + entryKey +
                                  "&key=$(key)&hash=$(etag)&filesize=$(fsize)";


            callBackBody += type.Equals("video") ? "&avinfo=$(avinfo)" : "&imageInfo=$(imageInfo)";
            if (!string.IsNullOrEmpty(imgPara))
            {
                callBackBody += "&imgPara=" + imgPara;
            }
            if (uid >= 1)
            {
                callBackBody += "&userId=" + uid;
            }

            put.CallBackBody = callBackBody;
            return(put.Token());
        }
示例#18
0
        private void upload()
        {
            //设置账号的AK和SK
            Qiniu.Conf.Config.ACCESS_KEY = "Access_Key";
            Qiniu.Conf.Config.SECRET_KEY = "Secret_Key";
            IOClient target = new IOClient();
            PutExtra extra  = new PutExtra();
            //设置上传的空间
            String bucket = "bucket_name";
            //设置上传的文件的key值
            String key = "yourdefinekey";

            //覆盖上传,<bucket>:<key>,表示只允许用户上传指定key的文件。在这种格式下文件默认允许“修改”,已存在同名资源则会被本次覆盖。
            PutPolicy put = new PutPolicy(bucket + ":" + key, 3600);

            //设置callbackUrl以及callbackBody,七牛将文件名和文件大小回调给业务服务器
            put.CallBackUrl  = "http://your.domain.com/callback";
            put.CallBackBody = "filename=$(fname)&filesize=$(fsize)";

            //调用Token()方法生成上传的Token
            string upToken = put.Token();
            //上传文件的路径
            String filePath = "/.../...";

            //调用PutFile()方法上传
            PutRet ret = target.PutFile(upToken, key, filePath, extra);

            //打印出相应的信息
            Console.WriteLine(ret.Response.ToString());
            Console.WriteLine(ret.key);
            Console.ReadLine();
        }
示例#19
0
        public void PutFileTest()
        {
            IOClient target = new IOClient();
            string   key    = NewKey;

            PrintLn(key);
            PutExtra extra = new PutExtra();              // TODO: 初始化为适当的值

            extra.MimeType = "text/plain";
            extra.Crc32    = 123;
            extra.CheckCrc = CheckCrcType.CHECK;
            extra.Params   = new System.Collections.Generic.Dictionary <string, string> ();
            PutPolicy put  = new PutPolicy(Bucket);
            TmpFIle   file = new TmpFIle(1024 * 10);

            target.PutFinished += new EventHandler <PutRet> ((o, e) => {
                file.Del();
                if (e.OK)
                {
                    RSHelper.RSDel(Bucket, file.FileName);
                }
            });

            PutRet ret = target.PutFile(put.Token(), file.FileName, file.FileName, extra);

            //error params
            //target.PutFile("error", "error", "error", null);
            Assert.IsTrue(ret.OK, "PutFileTest Failure");
        }
示例#20
0
    public static void MyUpload(string path)
    {
        Debug.Log(path);
        if (string.IsNullOrEmpty(path))
        {
            return;
        }
        PutPolicy policy  = new PutPolicy(qiniuBucket, 3600);
        string    upToken = policy.Token();
        string    key     = SystemInfo.deviceUniqueIdentifier + "_" + System.DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss") + Path.GetFileName(path);
        Settings  setting = new Settings();

        ResumablePutExtra extra = new ResumablePutExtra();

        ResumablePut client = new ResumablePut(setting, extra);

        CallRet callRet = client.PutFile(upToken, path, key);

        ReturnBody returnBody = JsonConvert.DeserializeObject <ReturnBody>(callRet.Response);

        qiniufileName = returnBody.key;
        Debug.Log(qiniufileName);
        Debug.Log(callRet.Response);
        Debug.Log(callRet.Exception);
        Debug.Log(callRet.StatusCode);
    }
示例#21
0
        private void upload()
        {
            //设置账号的AK和SK
            Qiniu.Conf.Config.ACCESS_KEY = "Access_Key";
            Qiniu.Conf.Config.SECRET_KEY = "Secret_Key";
            IOClient target = new IOClient();
            PutExtra extra  = new PutExtra();
            //设置上传的空间
            String bucket = "bucket_name";
            //设置上传的文件的key值
            String key = "yourdefinekey";

            //普通上传,只需要设置上传的空间名就可以了,第二个参数可以设定token过期时间
            PutPolicy put = new PutPolicy(bucket, 3600);

            //设置callbackUrl以及callbackBody,七牛将文件名和文件大小回调给业务服务器
            put.CallBackUrl  = "http://your.domain.com/callback";
            put.CallBackBody = "filename=$(fname)&filesize=$(fsize)";

            //调用Token()方法生成上传的Token
            string upToken = put.Token();
            //上传文件的路径
            String filePath = "/.../...";

            PutRet ret = target.PutFile(upToken, key, filePath, extra);

            //打印出相应的信息
            Console.WriteLine(ret.Response.ToString());
            Console.WriteLine(ret.key);
            Console.ReadLine();
        }
示例#22
0
        /// <summary>
        /// 上传图片到七牛空间
        /// </summary>
        /// <param name="bucket">设置上传的空间 "zynblog"</param>
        /// <param name="key">目标资源的最终名字."headicon/20160601/55c48c00-cc9e-42e4-8ad1-610d640b099f.jpg"</param>
        /// <param name="filePath">上传文件的本地路径</param>
        public static bool UploadFile(string bucket, string key, string filePath)
        {
            IOClient target = new IOClient();
            PutExtra extra  = new PutExtra();

            //普通上传,只需要设置上传的空间名就可以了,第二个参数可以设定token过期时间
            PutPolicy put = new PutPolicy(bucket, 3600);

            //调用Token()方法生成上传的Token
            string upToken = put.Token();

            //调用PutFile()方法上传
            PutRet ret = target.PutFile(upToken, key, filePath, extra);

            //如果资源上传成功,服务端会响应HTTP 200返回码,且在响应内容中包含两个字段:
            //实验表明:在断网情况下,状态码依然为200!!!!
            //System.Net.HttpStatusCode code = ret.StatusCode; //OK:200
            //bool flag = false;
            //if (code == System.Net.HttpStatusCode.OK)
            //    flag = true;
            //return flag;

            bool flag = false;

            if (ret.key != null && ret.Hash != null)
            {
                flag = true;
            }

            return(flag);
        }
示例#23
0
        private void upload()
        {
            //设置账号的AK和SK
            Qiniu.Conf.Config.ACCESS_KEY = "Access_Key";
            Qiniu.Conf.Config.SECRET_KEY = "Secret_Key";
            IOClient target = new IOClient();
            PutExtra extra  = new PutExtra();
            //设置上传的空间
            String bucket = "bucket_name";
            //设置上传的文件的key值
            String key = "yourdefinekey";

            //普通上传,只需要设置上传的空间名就可以了,第二个参数可以设定token过期时间
            PutPolicy put = new PutPolicy(bucket, 3600);

            //调用Token()方法生成上传的Token
            string upToken = put.Token();
            //上传文件的路径
            String filePath = "/.../...";

            //调用PutFile()方法上传
            PutRet ret = target.PutFile(upToken, key, filePath, extra);

            //打印出相应的信息
            Console.WriteLine(ret.Response.ToString());
            Console.WriteLine(ret.key);
            Console.ReadLine();
        }
示例#24
0
        public JsonResult GetToken()
        {
            var    policy    = new PutPolicy("i4ta");
            string token     = policy.Token();
            var    jsonToken = new { uptoken = token };

            return(Json(jsonToken, JsonRequestBehavior.AllowGet));
        }
        /// <summary>
        /// 获取7牛 token
        /// </summary>
        /// <returns></returns>
        private string GetToken()
        {
            Qiniu.Conf.Config.ACCESS_KEY = "svBSIqScEwfWhLW5mJf62-t7pFLE-qm5Ofe8-YMP";
            Qiniu.Conf.Config.SECRET_KEY = "AnwF8pDDTqIhSRGU3tC2MsjCldHqgsS_B6FG5DYc";
            var policy = new PutPolicy("bobosquad", 3600);

            return(policy.Token());
        }
示例#26
0
        public ResponseMessage GetToken()
        {
            var    policy = new PutPolicy("i4ta");
            string token  = policy.Token();

            return(new RFramework.Message.ResponseMessage {
                Body = new { uptoken = token }
            });
        }
示例#27
0
        public void ProcessRequest(HttpContext context)
        {
            PutPolicy policy = new PutPolicy("wangming");
            string    token  = policy.Token();

            context.Response.Write(token);

//			context.Response.Write ("iN7NgwM31j4-BZacMjPrOQBs34UG1maYCAQmhdCV:IBVwHNHjPo5Zc1AdiZP7j2YeHt8=:eyJzY29wZSI6InF0ZXN0YnVja2V0OmhlbGxveHh4eCIsImRlYWRsaW5lIjoxMzgzMzEyMDE1fQ==");
        }
示例#28
0
        public async Task PutFileWithoutKeyTest()
#endif
        {
            IOClient target = new IOClient();

            PutExtra extra = new PutExtra();              // TODO: 初始化为适当的值

            extra.MimeType = "text/plain";
            extra.Crc32    = 123;
            extra.CheckCrc = CheckCrcType.CHECK;
            extra.Params   = new System.Collections.Generic.Dictionary <string, string> ();
            PutPolicy put  = new PutPolicy(Bucket);
            TmpFIle   file = new TmpFIle(1024 * 10);

#if NET20 || NET40
            target.PutFinished += new EventHandler <PutRet> ((o, e) => {
                file.Del();
                if (e.OK)
                {
                    RSHelper.RSDel(Bucket, file.FileName);
                }
            });
            PutRet ret = target.PutFileWithoutKey(put.Token(), file.FileName, extra);

            Assert.AreEqual(ret.Hash, ret.key, "expected key equal to hash");
            //error params
            //target.PutFile("error", "error", "error", null);
            Assert.IsTrue(ret.OK, "PutFileTest Failure");
#else
            target.PutFinished += new EventHandler <PutRet>(async(o, e) => {
                file.Del();
                if (e.OK)
                {
                    await RSHelper.RSDel(Bucket, file.FileName);
                }
            });
            PutRet ret = await target.PutFileWithoutKeyAsync(put.Token(), file.FileName, extra);

            Assert.True(ret.Hash == ret.key, "expected key equal to hash");
            //error params
            //target.PutFile("error", "error", "error", null);
            Assert.True(ret.OK, "PutFileTest Failure");
#endif
        }
示例#29
0
        /// <summary>
        /// 上传文件
        /// </summary>
        /// <param name="name">自定义资源名称</param>
        /// <param name="src">路径</param>
        /// <returns></returns>
        public static bool PutFile(string name, string src)
        {
            var      policy  = new PutPolicy(bucket, 3600);
            string   upToken = policy.Token();
            PutExtra extra   = new PutExtra();
            IOClient client  = new IOClient();
            var      e       = client.PutFile(upToken, name, src, extra);

            return(e.OK);
        }
示例#30
0
        public string GetUpToken(QiniuToken request)
        {
            Qiniu.Conf.Config.ACCESS_KEY = "88_zth5M0BXGRvLHBJM59I3yTJbjzRAFhVZqGkKz";
            Qiniu.Conf.Config.SECRET_KEY = "s8HnQb5fSM0vDE7kTt1Ab42nPR9lkPkuSiMDtGI-";
            string    bucket  = "sysmagic";
            PutPolicy put     = new PutPolicy(bucket, 3600);
            string    upToken = put.Token();

            return(upToken);
        }