资源简介
项目需要将音视频文件上传服务器,考虑并发要求高,通过七牛来实现。
做了一个简易的压力测试,同时上传多个文件,七牛自己应该有队列处理并发请求,我无论同时提交多少个文件,七牛是批量一个个排队处理了。
代码片段和文件信息
using Qiniu.IO;
using Qiniu.IO.Resumable;
using Qiniu.RPC;
using Qiniu.RS;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace qiniuTest
{
///
/// 文件上传有两种方式:
/// 一种是以普通方式直传文件,简称普通上传;
/// 另一种方式是断点续上传,断点续上传在网络条件很一般的情况下也能有出色的上传速度,而且对大文件的传输非常友好。
///
class Program
{
static string bucket = “cvteXXXXX“;
static void Main(string[] args)
{
Qiniu.Conf.Config.ACCESS_KEY = “6QQ7Cnz4bljdkQOWQ5UOAheVCAd0bCa7XXXXX“;
Qiniu.Conf.Config.SECRET_KEY = “9rUGnbFtvm-PLWcZeOR6ed9MUjZ4bKitfXXXXX“;
string fileKey = “应用系统全貌图.png“;
//GetFileStat(bucket fileKey);
//小文件直传
string fileName = “CVTE信息系统-业务功能架构图-IM和企业微信.jpg“;
PutFile(bucket Guid.NewGuid().ToString() + fileName “d:\\“ + fileName);
//在asp.net mvc中的文件上传
//ResumablePutFile(bucket Guid.NewGuid().ToString() Path.Combine(path Request.Form[0]));
//大文件上传
//string bigFileName = “eclipse-java-luna-SR1-win32-x86_64.zip“;
//ResumablePutFile(bucket Guid.NewGuid().ToString() + bigFileName “d:\\Software\\“ + bigFileName);
//GetFile(“7xq1c1.com1.z0.glb.clouddn.com“ fileKey);
//********************** 压力测试 **********************
// 获取线程池的最大线程数和维护的最小空闲线程数
int maxThreadNum portThreadNum;
int minThreadNum;
ThreadPool.GetMaxThreads(out maxThreadNum out portThreadNum);
ThreadPool.GetMinThreads(out minThreadNum out portThreadNum);
Console.WriteLine(“最大线程数:{0}“ maxThreadNum);
Console.WriteLine(“最小空闲线程数:{0}“ minThreadNum);
int loopNumber = 1; //内部循环次数
int ConcurrentNumber = 10; //并发数
for (int i = 0; i < ConcurrentNumber; i++)
{
ThreadPool.QueueUserWorkItem(new WaitCallback(TaskProc) loopNumber);
}
Console.ReadLine();
}
public static void TaskProc(object loopNumber)
{
int LoopNumber = Convert.ToInt32(loopNumber);
Console.WriteLine(“启动任务,小文件直传“);
//小文件直传 压力测试
for (int i = 0; i < LoopNumber; i++)
{
string fileName = “WinRAR.exe“;
Console.WriteLine(i + “开始“ + fileName + System.DateTime.Now);
PutFile(bucket Guid.NewGuid().ToString() + fileName “D:\\“ + fileName);
Console.WriteLine(i + “完成“ + fileName + System.DateTime.Now);
string fileName1 = “WinRAR1.exe“;
Console.WriteLine(i + “开始“ + fileName1 + System.DateTime.Now);
PutFile(bucket Guid.NewGuid().ToString() + fileName1 “D:\\“ + fileName1);
Console.WriteLine(i +
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 436224 2016-01-13 10:19 bin\Debug\Newtonsoft.Json.dll
文件 46080 2016-01-13 10:19 bin\Debug\Qiniu.4.0.dll
文件 8192 2016-01-14 11:23 bin\Debug\qiniuTest.exe
文件 187 2016-01-13 10:17 bin\Debug\qiniuTest.exe.config
文件 17920 2016-01-14 11:23 bin\Debug\qiniuTest.pdb
文件 22984 2016-01-14 11:26 bin\Debug\qiniuTest.vshost.exe
文件 187 2016-01-13 10:17 bin\Debug\qiniuTest.vshost.exe.config
文件 490 2010-03-17 22:39 bin\Debug\qiniuTest.vshost.exe.manifest
文件 6737 2016-01-13 10:20 obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
文件 486 2016-01-14 11:26 obj\Debug\qiniuTest.csproj.FileListAbsolute.txt
文件 11148 2016-01-13 10:34 obj\Debug\qiniuTest.csprojResolveAssemblyReference.cache
文件 8192 2016-01-14 11:23 obj\Debug\qiniuTest.exe
文件 17920 2016-01-14 11:23 obj\Debug\qiniuTest.pdb
文件 0 2016-01-13 10:17 obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
文件 0 2016-01-13 10:17 obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
文件 0 2016-01-13 10:17 obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
文件 1356 2016-01-13 10:17 Properties\AssemblyInfo.cs
文件 187 2016-01-13 10:17 App.config
文件 436224 2016-01-13 10:19 Newtonsoft.Json.dll
文件 7626 2016-01-14 14:03 Program.cs
文件 46080 2016-01-13 10:19 Qiniu.4.0.dll
文件 3141 2016-01-13 10:34 qiniuTest.csproj
目录 0 2016-01-13 10:17 obj\Debug\TempPE
目录 0 2016-01-14 10:13 bin\Debug
目录 0 2016-01-13 10:19 bin\Release
目录 0 2016-01-14 11:23 obj\Debug
目录 0 2016-01-13 10:19 bin
目录 0 2016-01-13 10:17 obj
目录 0 2016-01-13 10:17 Properties
----------- --------- ---------- ----- ----
............此处省略2个文件信息
评论
共有 条评论