Example #1
0
        public RawSynologyResponse Upload(FileInfo fileName, string destinationFilePath, bool createParents = true,
                                          bool?overwrite = true)
        {
            var request = new SynologyRestRequest(Method.POST);

            request.AddParameter("_sid", _session.sid, ParameterType.QueryString);
            request.AddParameter("api", "SYNO.FileStation.Upload", ParameterType.QueryString);
            request.AddParameter("version", "2", ParameterType.QueryString);
            request.AddParameter("method", "upload", ParameterType.QueryString);
            request.AddParameter("path", destinationFilePath);
            request.AddParameter("create_parents", createParents);
            request.AddParameter("mtime", DateTimeExtender.GetUnixTimeFromDate(fileName.LastWriteTimeUtc).ToString());
            request.AddParameter("crtime", DateTimeExtender.GetUnixTimeFromDate(fileName.CreationTimeUtc).ToString());
            request.AddParameter("atime", DateTimeExtender.GetUnixTimeFromDate(fileName.LastAccessTimeUtc).ToString());
            request.AddParameter("overwrite", overwrite);

            request.AddFile(fileName.Name, fileName.FullName);

            var config = new AppSettingsClientConfig();
            var client = new RestClient(config.ApiBaseAddressAndPathNoTrailingSlash + "/entry.cgi");

            var response = client.Execute <RawSynologyResponse>(request);

            return(response.Data);
        }