-
Notifications
You must be signed in to change notification settings - Fork 13
English Doc
Bruce Tian edited this page Oct 25, 2020
·
4 revisions
FileInfo fileInfo = new FileInfo("testfile");//a file which will upload
var hostUri = new Uri(@"http://localhost:5000/files");// tus server Url
//Build default tusclient
var tusClient=TusBuild.DefaultTusClientBuild(hostUri)
.Build();
//subscribe event
tusClient.Uploading += printUploadProcess;
tusClient.UploadFinish += UploadFinish;
// create Upload-Metadata
Dictionary<string, string> dir = new Dictionary<string, string>();
dir["filename"] = fileInfo.FullName;
//create a Url of uploadfile
var fileUrl = await tusClient.Create(fileInfo, dir);
//start upload
var uploadResult = await tusClient.Upload(fileUrl, fileInfo);
TusClient has two events
public event Action<TusUploadContext> UploadFinish;
/// <summary>
/// uri offset fileLength
/// </summary>
public event Action<TusUploadContext> Uploading;
- Action UploadFinish: It can be invoked when the file has been uploaded
- Action Uploading:This method is used to notify the progress of the upload
The field definition for TusUploadContext is as follows:
- public long TotalSize { get; } :Total Size of upload File
- public long UploadedSize { get; set; } : size per transfer
- public FileInfo UploadFileInfo { get; } : upload file info
- public Uri UploadFileUrl { get;} : URl of upload file
var tusClient=TusBuild.DefaultTusClientBuild(tusHost)
.Build();
- tusHost is tus server Url,clientName default value is tusClient ,By default, every HTTP request is given with a "Tus-Resumable", "1.0.0" request header (except for Options requests)
var tusClient = TusBuild.DefaultTusClientBuild(tusHost)
.Configure(option =>
{
option.GetUploadSize = (u, t) => 10 * 1024 * 1024;
})
.Build();
- TusBuild has Configure method for custom TusClient. option is a TusClientOption Instance,It contains properties for custom configuration
- The implement of ITusCore,ITusExtension and IHttpClientFactory Interface can be rewrite by setting IServiceCollection Servces property of option
- custom size of every upload by rewriting GetUploadSize method
- public static TusBuild DefaultTusClientBuild(Uri tushost,string clientName="")
- summary:default build method
- first parameter is tus server host
- second parameter is logical name of the http client to create with IHttpClientFactory
- TusBuild Configure(Action configAction)
- summary:to configure TusClient
- TusClientOption specification
- public Uri TusHost { get; set; } :tus server host
- public IServiceCollection Servces { get; set; } :contain implement of ITusCore,ITusExtension and IHttpClientFactory
- public Func<TusUploadContext, int> GetUploadSize = (context) => 1 * 1024 * 1024 :custom size of every upload