dir.by  
  Поиск  
Программирование, разработка, тестирование
HTTP протокол (для web страниц), FTP/FTPS протокол (для передачи файлов), TCP протокол (для соединения между компьютерами), IP-адрес ...
FTP / FTPS протокол. Создаем локальный FTPS сервер используя Docker. Пишем программу на c# чтения файлов из FTPS сервера
  Посмотрели 3418 раз(а)    
 FTP / FTPS протокол. Создаем локальный FTPS сервер используя Docker. Пишем программу на c# чтения файлов из FTPS сервера 
последнее обновление: 8 сентября 2022
Шаг 1. Устанавливаем Docker Desktop
Шаг 2. Создаем локальный FTPS сервер используя Docker
Создаем в папке D:/ftp новый файл docker-compose.yml
  Файл D:/ftp/docker-compose.yml
version: '3'

services:
     ftps:
          image: stilliard/pure-ftpd
          container_name: ftps
          ports:
               - "21:21"
               - "30000-30009:30000-30009"
          volumes:
               - "D:/Users/youruser/ftps/data:/home/foo/"
               - "D:/Users/youruser/ftps/passwd:/etc/pure-ftpd/passwd"
               - "D:/Users/youruser/ftps/ssl:/etc/ssl/private/"
          environment:
               PUBLICHOST: "0.0.0.0"
               FTP_USER_NAME: foo
               FTP_USER_PASS: pass
               FTP_USER_HOME: /home/foo
               ADDED_FLAGS: "--tls=2"
               TLS_CN: "localhost"
               TLS_ORG: "YourOrg"
               TLS_C: "DE"
Скачать
docker-compose.yml ...
размер: 573 bytes
Шаг 3. Запускаем FTPS сервер используя Docker
Нажимаем правой клавишей мыши на Windows иконке

 
Теперь нажимаем на Power Shell (admin)
Выполняем команды чтобы сделать текущий директорий d:/ftp
d:
cd ftp
Выполняем команды для создания образа (docker) и запуска ftps сервера
docker-compose up -d
docker-compose logs -f
Откроем Docker Desktop и увидим что ftp/ftps сервер запущен
Шаг 4. Создаем папку
D:/Users/youruser/ftps/
в эту папку я добавил файлы и директории:
Шаг 5. Скачиваем и устанавливаем программу WinSCP (для проверки FTPS соединения)
Открываем сайт: https://winscp.net/eng/download.php
Делаем соединение с FTP сервером:
Соединился к сервру
и увидим папки ftps сервера
Шаг 6. Пишем программу на c# чтения файлов из FTPS сервера
  Создаем новое консольное приложение на C#...
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;

namespace ConsoleReadFTPSFolder
{
     class Program
     {
          static void Main(string[] args)
          {
               var (succeeded, files, errorMessage) = ConnectToFtpsAndReadFilesInDirectory("foo", "pass", "ftp://localhost:21", true, true);
              
               if (succeeded)
               {
                    Console.WriteLine("Show files in FTPS directory:");
                    foreach (var file in files)
                         Console.WriteLine(file);
               }
               else
               {
                    // error
                    Console.WriteLine($"Error reading directory: {errorMessage}");
               }

               // wait
               Console.ReadLine();
          }

          private static (bool, IEnumerable<string>, string) ConnectToFtpsAndReadFilesInDirectory(string login, string password, string ftpPath, bool usePassive, bool enableSsl)
          {
               string fileNames = null;
               try
               {
                    ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

                    FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpPath);
                    request.Method = WebRequestMethods.Ftp.ListDirectory;

                    request.EnableSsl = enableSsl;
                    request.UsePassive = usePassive;
                    request.Credentials = new NetworkCredential(login, password);

                    using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())
                    {
                         Stream responseStream = response.GetResponseStream();
                         using (StreamReader reader = new StreamReader(responseStream))
                         {
                              fileNames = reader.ReadToEnd();
                              reader.Close();
                         }
                    }

                    IEnumerable<string> arrFilename = fileNames?.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries)?.ToList();
                    return (true, arrFilename, null);
               }
               catch (Exception e)
               {
                    return (false, null, e?.Message);
               }

          }

     }
}
Запускаем программу:
Результат
Список файлов из ftps сервера:
 
← Предыдущая тема
Что происходит при выполнении HTTP-запросов в браузере? Протокол HTTP ...
 
 
Ваши Отзывы ... комментарии ...
   
Вашe имя
Ваш комментарий (www ссылки может добавлять только залогиненный пользователь)

Картинки

Объявления
Объявления
HTTP протокол (для web страниц), FTP/FTPS протокол (для передачи файлов), TCP протокол (для соединения между компьютерами), IP-адрес ...  
Что такое IP адрес компьютера?
Что такое URL адрес ?
Схема протоколов
Сетевая модель OSI 7 уровней: физический, канальный, сетевой, транспортный, сеансовый, представления, прикладной
TCP протокол
TCP протокол
HTTP / HTTPS протокол
Что происходит при выполнении HTTP-запросов в браузере? Протокол HTTP ...
FTP / FTPS протокол
FTP / FTPS протокол. Создаем локальный FTPS сервер используя Docker. Пишем программу на c# чтения файлов из FTPS сервера

  Ваши вопросы присылайте по почте: info@dir.by  
Яндекс.Метрика