七牛上传速度太慢

我用的是你们网站上提供的c#SDK
测试时,只能上传一些小文件,而上传几MB的文件时,速度会非常慢,并最终失败。

另外我想做成异步,带进度的上传文件,结果失败,不知为什么

下面是我的代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Qiniu.RS;
using Qiniu.IO.Resumable;
using Qiniu.IO;
using System.Net;
using System.IO;

namespace testQiNiu
{
    class Program
    {

        public const string tmpBaseUrl = "http://cstmpfile.qiniudn.com/";
        public const string tmpBucketName = "cstmpfile";

        static void Main(string[] args)
        {
            Qiniu.Conf.Config.ACCESS_KEY = ".....";
            Qiniu.Conf.Config.SECRET_KEY = ".....";

            Guid guid = Guid.NewGuid();
            string key = guid.ToString("N");

            string fname = "E:\\迅雷\\p.mp4";

            var policy = new PutPolicy(tmpBucketName, 3600);
            string upToken = policy.Token();
            PutExtra extra = new PutExtra();
            IOClient client = new IOClient();
            client.PutFile(upToken, key, fname, extra);

            //PutPolicy policy = new PutPolicy(tmpBucketName, 3600);
            //string upToken = policy.Token();
            //Settings setting = new Settings();
            //ResumablePutExtra extra = new ResumablePutExtra();
            //ResumablePut client = new ResumablePut(setting, extra);
            //client.Progress += new Action<float>(client_Progress);
            //client.PutFailure += new EventHandler<Qiniu.RPC.CallRet>(client_PutFailure);
            //client.PutFinished += new EventHandler<Qiniu.RPC.CallRet>(client_PutFinished);



            //client.PutFile(upToken, fname, key);

            FileInfo fi = new FileInfo(fname);

            WebClient wc = new WebClient();
            wc.DownloadFile(tmpBaseUrl + key, fi.Name);

            Console.ReadKey();
        }

        static void client_PutFinished(object sender, Qiniu.RPC.CallRet e)
        {
            Console.WriteLine("下载完成");
        }

        static void client_PutFailure(object sender, Qiniu.RPC.CallRet e)
        {
            Console.WriteLine("出错:" + e.Exception.Message);
        }

        static void client_Progress(float obj)
        {
            Console.WriteLine(obj.ToString()+"%");
        }

    }
}
阅读 5.6k
2 个回答

如果是在客户端测试,请将 sdk 中的上传域名从 up.qiniu.com 改为 upload.qiniu.com。如果上传在服务端进行,则用 up.qiniu.com。如果还不能解决您的问题,请联系技术支持人员。

up.qiniu.com 线路在部分环境不行

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进