NTP Analyzer  0.8.2
Analyze the operation of time servers
FtpStreamDestination.cs
Go to the documentation of this file.
1 //
2 // Copyright (c) 2013-2017 Carsten Sonne Larsen <cs@innolan.net>
3 //
4 // Permission is hereby granted, free of charge, to any person obtaining a copy
5 // of this software and associated documentation files (the "Software"), to deal
6 // in the Software without restriction, including without limitation the rights
7 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 // copies of the Software, and to permit persons to whom the Software is
9 // furnished to do so, subject to the following conditions:
10 //
11 // The above copyright notice and this permission notice shall be included in
12 // all copies or substantial portions of the Software.
13 //
14 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 // THE SOFTWARE.
21 
22 using System;
23 using System.IO;
24 using System.Net;
25 using Ntp.Common.Log;
26 
27 namespace Ntp.Analyzer.Export
28 {
30  {
31  public FtpStreamDestination(string path, string file)
32  {
33  this.path = path;
34  this.file = file;
35  }
36 
37  private readonly string file;
38  private readonly string path;
39 
40  public override string Link => string.Empty;
41 
42  public override string Value => file;
43 
44  public override string Location => file;
45 
46  public override string AbsoluteLocation => path + file;
47 
48  public override void Test()
49  {
50  /*
51  string testFile = AbsoluteLocation;
52  string testContent = "FileStreamDestinationTest";
53 
54  if (File.Exists(testFile))
55  {
56  File.Delete(testFile);
57  }
58 
59  File.WriteAllText(testFile, testContent);
60 
61  File.Delete(testFile);
62  */
63  }
64 
65  public override void Write(Stream stream, LogBase log)
66  {
67  string absFile = AbsoluteLocation;
68 
69  if (File.Exists(absFile))
70  {
71  File.Delete(absFile);
72  }
73 
74  try
75  {
76  var request = (FtpWebRequest) WebRequest.Create("ftp://172.20.83.1/test.png");
77  request.Method = WebRequestMethods.Ftp.UploadFile;
78  request.Credentials = new NetworkCredential("ntapf", "ntpafps");
79  request.UsePassive = false;
80 
81  request.ContentLength = stream.Length;
82  Stream requestStream = request.GetRequestStream();
83  stream.CopyTo(requestStream);
84  requestStream.Close();
85 
86  var response = (FtpWebResponse) request.GetResponse();
87 
88  Console.WriteLine($"Upload File Complete, status {response.StatusDescription}");
89 
90  response.Close();
91  }
92  catch (Exception e)
93  {
94  log.WriteLine(e);
95  }
96  }
97  }
98 }
abstract void WriteLine(string text, Severity severity)
FtpStreamDestination(string path, string file)
var e
Definition: bootstrap.min.js:6
override void Write(Stream stream, LogBase log)