예제 #1
0
        static async Task Main(string[] args)
        {
            var stream = new MemoryStream(1024 * 1024 * 32);

            for (var i = 0; i < 1024 * 1024 * 32; i++)
            {
                stream.Write(Encoding.UTF8.GetBytes(BitConverter.ToString(new byte[] { (byte)i }), 0, 2));
            }

            //reset position
            stream.Position = 0;

            // remote tus service
            var hostUri = new Uri(@"http://localhost:5000/files");

            // build a standalone tus client instance
            var tusClient = TusBuild.DefaultTusClientBuild(hostUri)
                            .Build();

            //hook up events
            tusClient.UploadProgress += printUploadProcess;
            tusClient.UploadFinish   += uploadFinish;

            //define additional file metadata
            MetadataCollection metadata = new MetadataCollection();

            //create upload url
            var uploadUrl = await tusClient.Create(stream.Length, metadata);

            //upload file
            var uploadResult = await tusClient.Upload(uploadUrl, stream, null);
        }
예제 #2
0
        static async Task Main(string[] args)
        {
            var location = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            // file to be uploaded
            FileInfo fileInfo = new FileInfo(Path.Combine(location, "test.txt"));

            // remote tus service
            var hostUri = new Uri(@"http://localhost:5000/files");

            // build a standalone tus client instance
            var tusClient = TusBuild.DefaultTusClientBuild(hostUri)
                            .Build();

            //hook up events
            tusClient.UploadProgress += printUploadProcess;
            tusClient.UploadFinish   += uploadFinish;

            //define additional file metadata
            MetadataCollection metadata = new MetadataCollection();

            metadata["filename"] = fileInfo.FullName;

            //create upload url
            var fileUrl = await tusClient.Create(fileInfo, metadata);

            //upload file
            var uploadResult = await tusClient.Upload(fileUrl, fileInfo, null);
        }
예제 #3
0
        public async Task TestUploadFilesAsync()
        {
            var tusClient = TusBuild.DefaultTusClientBuild(tusHost)

                            .Build();
            var fileInfo = new FileInfo(@"TestFile/test.mp4");
            Dictionary <string, string> dir = new Dictionary <string, string>();

            dir["filename"] = fileInfo.FullName;
            List <Uri> fileUrls = new List <Uri>();

            for (int i = 0; i < 30; i++)
            {
                var fileUrl = await tusClient.Create(fileInfo, dir);

                fileUrls.Add(fileUrl);
            }

            foreach (var item in fileUrls)
            {
                var uploadResult = await tusClient.Upload(item, fileInfo);

                Assert.True(uploadResult);
            }
        }
예제 #4
0
        private ITusClient BuildClient()
        {
            Uri host = new Uri("http://localhost:6000/files");

            ITusClient tusClient = TusBuild.DefaultTusClientBuild(host)
                                   .Build();

            return(tusClient);
        }
예제 #5
0
        public async Task TestCreateTusClientAsync()
        {
            var tusClient = TusBuild.DefaultTusClientBuild(tusHost)

                            .Build();
            var fileInfo           = new FileInfo(@"TestFile/test.mp4");
            MetadataCollection dir = new MetadataCollection();

            dir["filename"] = fileInfo.FullName;

            var result = await tusClient.Create(fileInfo, dir);
        }
예제 #6
0
        public async Task TestCreateTusClientAsync()
        {
            var tusClient = TusBuild.DefaultTusClientBuild(tusHost)

                            .Build();
            var fileInfo = new FileInfo(@"TestFile/test.mp4");
            Dictionary <string, string> dir = new Dictionary <string, string>();

            dir["filename"] = fileInfo.FullName;

            var result = await tusClient.Create(fileInfo, dir);
        }
예제 #7
0
        static async Task Main(string[] args)
        {
            var location = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            // file to be uploaded
            FileInfo fileInfo = new FileInfo(Path.Combine(location, @"TestFile/test.txt"));

            // remote tus service
            var hostUri = new Uri(@"http://localhost:6000/files");

            // build a standalone tus client instance
            var tusClient = TusBuild.DefaultTusClientBuild(hostUri)
                            .Configure((options, httpClientBuilder) =>
            {
                //customize http client
                httpClientBuilder.ConfigureHttpClient(httpClient =>
                {
                    httpClient.DefaultRequestHeaders.Authorization =
                        new AuthenticationHeaderValue("Bearer", "ACCESS_TOKEN");
                });

                /* httpClientBuilder.ConfigurePrimaryHttpMessageHandler(() => new HttpClientHandler()
                 * {
                 *   UseCookies = false,
                 * });*/
            })
                            .Build();

            //hook up events
            tusClient.UploadProgress += printUploadProcess;
            tusClient.UploadFinish   += uploadFinish;

            //define additional file metadata
            MetadataCollection metadata = new MetadataCollection();

            metadata["filename"] = fileInfo.FullName;

            TusRequestOption requestOption = new TusRequestOption();

            requestOption.HttpHeader["hello"] = "hello";

            //create upload url
            var fileUrl = await tusClient.Create(fileInfo, null, requestOption);

            var uploadOpt = new TusRequestOption()
            {
                UploadWithStreaming = true //enable streaming Upload
            };

            //upload file
            var uploadResult = await tusClient.Upload(fileUrl, fileInfo, null, uploadOpt);
        }
예제 #8
0
        public async Task TestConfigTusAsync()
        {
            var tusClient = TusBuild.DefaultTusClientBuild(tusHost)
                            .Configure((option, httpClientBuilder) =>
            {
                option.GetChunkUploadSize = (s, u) => 10 * 1024 * 1024;
            })
                            .Build();
            var fileInfo           = new FileInfo(@"TestFile/test.mp4");
            MetadataCollection dir = new MetadataCollection();

            dir["filename"] = fileInfo.FullName;

            var result = await tusClient.Create(fileInfo, dir);
        }
예제 #9
0
        public async Task TestConfigTusAsync()
        {
            var tusClient = TusBuild.DefaultTusClientBuild(tusHost)
                            .Configure(option =>
            {
                option.GetUploadSize = (u) => 10 * 1024 * 1024;
            })
                            .Build();
            var fileInfo = new FileInfo(@"TestFile/test.mp4");
            Dictionary <string, string> dir = new Dictionary <string, string>();

            dir["filename"] = fileInfo.FullName;

            var result = await tusClient.Create(fileInfo, dir);
        }
예제 #10
0
        static async Task Main(string[] args)
        {
            FileInfo fileInfo = new FileInfo("test.dmg");

            var hostUri   = new Uri(@"http://localhost:5000/files");
            var tusClient = TusBuild.DefaultTusClientBuild(hostUri)
                            .Build();

            tusClient.Uploading    += printUploadProcess;
            tusClient.UploadFinish += UploadFinish;
            Dictionary <string, string> dir = new Dictionary <string, string>();

            dir["filename"] = fileInfo.FullName;

            var fileUrl = await tusClient.Create(fileInfo, dir);

            var uploadResult = await tusClient.Upload(fileUrl, fileInfo);

            Console.ReadLine();
        }