Ejemplo n.º 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="LocalFile"></param>
        /// <returns></returns>
        async public Task UploadFileDataAsync(string LocalFile)
        {
            using (var LocalStream = File.OpenRead(LocalFile))
            {
                var HttpClient = GetAuthorizedHttpClient();
                var MultipartFormDataContent = new MultipartFormDataContent();
                var TrackedLocalStream       = new TrackingStream(LocalStream);
                var StreamContent            = new StreamContent(TrackedLocalStream, 256 * 1024);
                StreamContent.Headers.ContentType                 = new MediaTypeHeaderValue("application/octet-stream");
                StreamContent.Headers.ContentDisposition          = new ContentDispositionHeaderValue("form-data");
                StreamContent.Headers.ContentDisposition.Name     = "file";
                StreamContent.Headers.ContentDisposition.FileName = Path.GetFileName(LocalFile);
                MultipartFormDataContent.Add(StreamContent);

                TrackedLocalStream.OnPositionChanged += (Position) =>
                {
                    Console.Out.Write("Position: {0}/{1} : {2}%\r", Position, LocalStream.Length, Math.Round(((double)Position / (double)LocalStream.Length) * 100, 2));
                    Console.Out.Flush();
                };

                var Response = await HttpClient.PostAsync(this.Url + "/?" + PhpCloudBoxUtils.ToQueryString(new NameValueCollection()
                {
                    { "action", "file.upload" },
                }
                                                                                                           ), MultipartFormDataContent);

                var ResponseText = await Response.Content.ReadAsStringAsync();

                Console.WriteLine(ResponseText);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="Path"></param>
        /// <returns></returns>
        async public Task <Stream> DownloadFileAsync(string Path)
        {
            var HttpClient = GetAuthorizedHttpClient();

            var Stream = await HttpClient.GetStreamAsync(this.Url + "/?" + PhpCloudBoxUtils.ToQueryString(new NameValueCollection()
            {
                { "action", "tree.file.get" },
                { "path", Path },
            }
                                                                                                          ));

            return(Stream);
        }
Ejemplo n.º 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="Path"></param>
        /// <returns></returns>
        async public Task <bool> DeleteFileAsync(string Path)
        {
            var HttpClient = GetAuthorizedHttpClient();

            var JsonText = await HttpClient.GetStringAsync(this.Url + "/?" + PhpCloudBoxUtils.ToQueryString(new NameValueCollection()
            {
                { "action", "tree.remove" },
                { "path", Path },
            }
                                                                                                            ));

            return(true);
        }
Ejemplo n.º 4
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        async public Task <List <FileInfo> > GetFileListAsync()
        {
            var HttpClient = GetAuthorizedHttpClient();

            var JsonText = await HttpClient.GetStringAsync(this.Url + "/?" + PhpCloudBoxUtils.ToQueryString(new NameValueCollection()
            {
                { "action", "tree.get" },
            }
                                                                                                            ));

            //Console.WriteLine(JsonText);
            var Result = JsonConvert.DeserializeObject <Result <List <FileInfo> > >(JsonText);

            return(Result.data);
        }
Ejemplo n.º 5
0
        async public Task <bool> AddFileAsync(string RemoteFile, string sha1, DateTime ctime, DateTime mtime, string perms)
        {
            var HttpClient = GetAuthorizedHttpClient();

            var JsonText = await HttpClient.GetStringAsync(this.Url + "/?" + PhpCloudBoxUtils.ToQueryString(new NameValueCollection()
            {
                { "action", "tree.add" },
                { "path", RemoteFile },
                { "sha1", sha1 },
                { "ctime", "0" },
                { "mtime", "0" },
                { "perms", "0777" },
            }
                                                                                                            ));

            return(true);
        }
Ejemplo n.º 6
0
        async public Task <bool> HasFileDataAsync(string Path)
        {
            var HttpClient = GetAuthorizedHttpClient();

            var Sha1 = await PhpCloudBoxUtils.Sha1FileAsync(Path);

            var JsonText = await HttpClient.GetStringAsync(this.Url + "/?" + PhpCloudBoxUtils.ToQueryString(new NameValueCollection()
            {
                { "action", "file.has" },
                { "sha1", Sha1 },
            }
                                                                                                            ));

            var Result = JsonConvert.DeserializeObject <Result <bool> >(JsonText);

            return(Result.data);
        }