Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 Отправка файлов на FTP-сервер  [new]
aidynchik
Member

Откуда:
Сообщений: 553
Всем доброго дня!
У меня происходит обмен данными между приложениями разных компьютеров, проще говоря - синхронизация.
На данный момент для обмена используются сервисы DropBox или Гугл/Яндекс Диск.
Но:
1. Для клиента неудобно, лишние движения по скачке и настройке Дропбокса.
2. Многие не знают, что это такое, приходится каждому регистрировать аккаунты и настраивать приложение на компе.
3. Иногда случайно выключают Дропбокс и все - синхронизация встает.

Было решено снять сервер, и закидывать туда файлики на Ftp. Но тут появляются вопросы - как быть с целостностью данных. Как это решается, вдруг во время передачи пропал интернет, файл не передался полностью. Это как-то можно проверить, есть ли какой-то сигнал, что передача завершена.
Буду очень признателен за овтеты.
7 ноя 20, 10:26    [22227888]     Ответить | Цитировать Сообщить модератору
 Re: Отправка файлов на FTP-сервер  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 14759
Перед скачиванием запрашиваешь CRC у FTP-сервера. После скачивания проверяешь.
7 ноя 20, 11:36    [22227919]     Ответить | Цитировать Сообщить модератору
 Re: Отправка файлов на FTP-сервер  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 14759
1. Непонятно, что, каждый раз перед скачиванием это нужно делать?
2. Т.е. многие знают, что такое FTP и умеют арендовать и постоянно оплачивать сервер?
3. Используйте box.com или mega.nz. Нет гарантии, что также и на FTP будет сбоев.

4. Вместо FTP может лучше купить один акк. на mega.nz? И использовать какие-нибудь компоненты работы с облаками. Вроде бы у uniDAC есть такие. В Delphi есть встроенные для Azure и Amazon, 100% что есть и сторонние библиотеки, например, TMS VCL/FMX cloud pack

Сообщение было отредактировано: 7 ноя 20, 11:43
7 ноя 20, 11:44    [22227921]     Ответить | Цитировать Сообщить модератору
 Re: Отправка файлов на FTP-сервер  [new]
aidynchik
Member

Откуда:
Сообщений: 553
X11,

1. Нет, это нужно сделать 1 раз, но каждый раз это нужно делать мне.
2. Никто не знает про ФТП, сервер будет наш.

Задача, чтобы клиент просто включил галочку и все у него заработало, без обращения к нам.
7 ноя 20, 12:18    [22227932]     Ответить | Цитировать Сообщить модератору
 Re: Отправка файлов на FTP-сервер  [new]
aidynchik
Member

Откуда:
Сообщений: 553
X11,

за идею с облаками спасибо
7 ноя 20, 12:23    [22227933]     Ответить | Цитировать Сообщить модератору
 Re: Отправка файлов на FTP-сервер  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51775

aidynchik
Но тут появляются вопросы - как быть с целостностью данных. Как это решается, вдруг во
время передачи пропал интернет, файл не передался полностью. Это как-то можно проверить,
есть ли какой-то сигнал, что передача завершена.

Нет, никакого сигнала нет. И команды на выдачу CRC у FTP я тоже не припомню.

Posted via ActualForum NNTP Server 1.5

7 ноя 20, 13:16    [22227945]     Ответить | Цитировать Сообщить модератору
 Re: Отправка файлов на FTP-сервер  [new]
miksoft
Member

Откуда:
Сообщений: 38545
aidynchik
Для клиента неудобно, лишние движения по скачке и настройке Дропбокса.
Почему бы не использовать API ?


aidynchik
Но тут появляются вопросы - как быть с целостностью данных. Как это решается, вдруг во время передачи пропал интернет, файл не передался полностью. Это как-то можно проверить, есть ли какой-то сигнал, что передача завершена.
Независимо от способа транспортировки файлов, я бы предложил использовать архивы. У них есть встроенный контроль целостности и возможность закрыть содержимое паролем.
7 ноя 20, 14:13    [22227966]     Ответить | Цитировать Сообщить модератору
 Re: Отправка файлов на FTP-сервер  [new]
Vizit0r
Member

Откуда: Одесса
Сообщений: 855
насколько я помню, успешно залитым на фтп файл считается, когда его размер на фтп = размеру исходного файла.
7 ноя 20, 14:27    [22227971]     Ответить | Цитировать Сообщить модератору
 Re: Отправка файлов на FTP-сервер  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51775

Вообще-то достаточно получить ответ 2хх на команду STOR, но аффтар-то спрашивал об обратном.

Posted via ActualForum NNTP Server 1.5

7 ноя 20, 14:43    [22227974]     Ответить | Цитировать Сообщить модератору
 Re: Отправка файлов на FTP-сервер  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 14759
Dimitry Sibiryakov
И команды на выдачу CRC у FTP я тоже не припомню.


зависит от ftp- сервера и настроек
я помню, что есть

OverbyteICS/Source/OverbyteIcsFtpCli.pas
Xcrc - Get CRC32 hash sum of HostFileName from PosStart to PosEnd to CRCResult,
only supported if ftpFeatXCrc in SupportedExtensions - V2.107


я даже когда-то использовал
                //узнаём CRC удалённого файла
                if FtpClient1.XCrc then
                  begin
                    iCRC := StrToInt('$' + FtpClient1.CrcResult);
                    log('CRC32: '+FtpClient1.CrcResult);
                    //если CRC совпадают, то прекращаем пытаться скачать ещё раз этот файл
                    if iCrc = FileCRC32(FtpClient1.LocalFileName) then
                      begin
                        LOG('...успешно');


Если мне не изменяет память, то я тогда использовать Serv-U FTP server for Windows
7 ноя 20, 16:18    [22227987]     Ответить | Цитировать Сообщить модератору
 Re: Отправка файлов на FTP-сервер  [new]
defecator
Member

Откуда:
Сообщений: 39394
X11


я даже когда-то использовал
                //узнаём CRC удалённого файла
                if FtpClient1.XCrc then
                  begin
                    iCRC := StrToInt('$' + FtpClient1.CrcResult);
                    log('CRC32: '+FtpClient1.CrcResult);
                    //если CRC совпадают, то прекращаем пытаться скачать ещё раз этот файл
                    if iCrc = FileCRC32(FtpClient1.LocalFileName) then
                      begin
                        LOG('...успешно');


любишь лесенки в коде ?
7 ноя 20, 19:51    [22228041]     Ответить | Цитировать Сообщить модератору
 Re: Отправка файлов на FTP-сервер  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 14759
defecator,

Этому коду почти 14 лет
сейчас по-другому :)
7 ноя 20, 20:11    [22228051]     Ответить | Цитировать Сообщить модератору
 Re: Отправка файлов на FTP-сервер  [new]
НеофитSQL
Member [заблокирован]

Откуда: Маями
Сообщений: 760
aidynchik
Всем доброго дня!
У меня происходит обмен данными между приложениями разных компьютеров, проще говоря - синхронизация.
На данный момент для обмена используются сервисы DropBox или Гугл/Яндекс Диск.
Но:
1. Для клиента неудобно, лишние движения по скачке и настройке Дропбокса.
2. Многие не знают, что это такое, приходится каждому регистрировать аккаунты и настраивать приложение на компе.
3. Иногда случайно выключают Дропбокс и все - синхронизация встает.

Было решено снять сервер, и закидывать туда файлики на Ftp. Но тут появляются вопросы - как быть с целостностью данных. Как это решается, вдруг во время передачи пропал интернет, файл не передался полностью. Это как-то можно проверить, есть ли какой-то сигнал, что передача завершена.
Буду очень признателен за овтеты.


Дропбокс, GoogleDrive, и все похожие сервисы приложили достаточно усилий, чтобы сделать их удобными для максимального числа людей и конфигураций. В процессе они решили много проблем, которые раздражали пользователей предыдущих технологий, и с некоторыми из которых вам предстоит познакомиться, если вы решите продолжать копать в направлении архаичного FTP.
С некоторыми столкнетесь сразу, некоторые будут проявляться постепенно, по мере обновления сетевых конфигураций и деплойментов.

Пункт (1) покажется пустяковым по сравнения с обходом FTP фильтров провайдеров.
Пункт (2) решается докой на одну страницу. Если проблема решается докой (и коммерческим готовым продуктом), это успех.
Пункт (3) решается конфигурацией или скриптом. Я тоже это причисляю к успеху, по сравнению с написанием кода.

FTP довольно простой и неприхотливый протокол для посылания файлов с клиента на сервер, немного сложнее в их получении.
Хэшей нет, компрессии тоже. Целостность можно обеспечить через ZIP, или другой архивный формат файлов.
Хакается без особых проблем, DOS тоже легко.
Если вы оставляете сервер открытым (без паролей, или с общим паролем), со временем он может превратиться в центр обмена информацией, запрещенной в вашей стране.

Некоторые из этих проблем решаются если все обмены файлов происходят во внутренней сети корпорации, но тогда есть сетевая папка, с которой все знакомы.

Я изучал сетевые протоколы пару десятков лет, и имплементировал несколько. FTP - паровая машина с присущими ей недостатками.

Посмотрите в сторону решений основанных на HTTP, предпочтительно готовых.
7 ноя 20, 20:13    [22228053]     Ответить | Цитировать Сообщить модератору
 Re: Отправка файлов на FTP-сервер  [new]
defecator
Member

Откуда:
Сообщений: 39394
X11
defecator,

Этому коду почти 14 лет
сейчас по-другому :)


ты за 14 лет так и не научился программировать, судя по обилию тем от тебя ?
https://www.sql.ru/forum/actualsearch.aspx?a=X11&ma=0
7 ноя 20, 21:51    [22228085]     Ответить | Цитировать Сообщить модератору
 Re: Отправка файлов на FTP-сервер  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 14759
aidynchik
3. Иногда случайно выключают Дропбокс и все - синхронизация встает.


Несколько вопросов.

Т.е. вы хотите написать свой дропбокс?
Т.е. вы гарантируете клиенту, что ваш синхронизатор будет надежнее дропбокса?
Интересно, сколько у вас программистов опытных и сколько в команде дропбокса?
Почему буквально все облачные технологии не используют FTP? По крайней мере все, которые знаю я.

(все вопросы риторические)

Я когда-то тоже использовал дропбокс. Я уже не помню, чем меня задолбал этот дропбокс, но потом в итоге я переехал на mega.nz и box.com.
7 ноя 20, 22:25    [22228104]     Ответить | Цитировать Сообщить модератору
 Re: Отправка файлов на FTP-сервер  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 14759
defecator, та Дельфи для меня больше, как хобби, а не основное средство заработка и пропитания.
7 ноя 20, 22:26    [22228106]     Ответить | Цитировать Сообщить модератору
 Re: Отправка файлов на FTP-сервер  [new]
fraks
Member

Откуда: Новосибирск
Сообщений: 1613
X11

Т.е. вы хотите написать свой дропбокс?
Т.е. вы гарантируете клиенту, что ваш синхронизатор будет надежнее дропбокса?


Не требуется повторять весь функционал доропбокса.
Вы гарантируете клиенту что без вашего ведома не сменится никакая версия чего-бы то ни было.

У нас были проблемы с дропбоксом когда он перестал поддерживать клиента на WinXP. И вот зачем, чисто из-за какого-то обменника, менять ОС на которой все уже давно работает?

Это заграница, в наше время не исключены какие-то санеции, из-за которых может потеряться доступ к дропбоксу и иным буржуйским сервисам.

Использовали и Яндекс.Диск. Тоже забили на это дело, работает не всегда понятно и предсказуемо.

В итоге тачки с которым требуется обмен, подцепляются к офисной сетке с сервером через OpenVPN.
Это решает массу проблем. Все сервисы - наши, подконтрольные, нигде ничего само не поменяет версию и не перестанет быть совместимым. И внутри этой сетке можно ходить чем угодно, в том числе и ftp и даже smb :)
Впрочем, мы и от файлов отказались, лезем по этой сетке сразу в базу.

Сообщение было отредактировано: 9 ноя 20, 04:14
9 ноя 20, 04:13    [22228521]     Ответить | Цитировать Сообщить модератору
 Re: Отправка файлов на FTP-сервер  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4339
fraks
Впрочем, мы и от файлов отказались, лезем по этой сетке сразу в базу.
Я вообще по своему протоколу своему серверу всякие данные и файлы посылаю :) , а он уже кладёт их в базу.
9 ноя 20, 06:35    [22228528]     Ответить | Цитировать Сообщить модератору
 Re: Отправка файлов на FTP-сервер  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 14759
fraks
Это заграница, в наше время не исключены какие-то санеции, из-за которых может потеряться доступ к дропбоксу и иным буржуйским сервисам.


так ничего своего, все на буржуйских сервисах работает: языки программирования, технологии, ОС, СУБД, железо и т.д.

Тогда уже нужно что-то кроссплатформенное писать, чтобы под Линуксом работало.
Желательно на Болдженосе протестировать
9 ноя 20, 12:33    [22228665]     Ответить | Цитировать Сообщить модератору
 Re: Отправка файлов на FTP-сервер  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 14759
fraks
и не перестанет быть совместимым.

Тогда нужно писать программу на Delphi 7/2007 или на Lazarus. Т.к. начиная с какой-то версии (уже не помню) Delphi не гарантирует нормальную работу приложения на Win XP.
9 ноя 20, 12:35    [22228670]     Ответить | Цитировать Сообщить модератору
 Re: Отправка файлов на FTP-сервер  [new]
fraks
Member

Откуда: Новосибирск
Сообщений: 1613
X11
fraks
Это заграница, в наше время не исключены какие-то санеции, из-за которых может потеряться доступ к дропбоксу и иным буржуйским сервисам.


так ничего своего, все на буржуйских сервисах работает: языки программирования, технологии, ОС, СУБД, железо и т.д.


Вы путаете понятие сервис и инструмент.
От закрытия интернета между Россией и прочим миром, у меня в инфраструктуре ничего не пострадает.

Тот же Firebird - это буржуйский или нет? Тем более что сервера установлены не где-то там а на моем железе.

X11
Тогда уже нужно что-то кроссплатформенное писать, чтобы под Линуксом работало.
Тогда нужно писать программу на Delphi 7/2007 или на Lazarus.


Ну, я так и делаю :) моя программа, написанная на D7 нормально работает под Linux через wine.
Новых дельфей, с их активацией через интернет, я использовать не буду, что бы в случе чего не оказаться с тыквой.

Сообщение было отредактировано: 10 ноя 20, 03:42
10 ноя 20, 03:44    [22229277]     Ответить | Цитировать Сообщить модератору
 Re: Отправка файлов на FTP-сервер  [new]
fraks
Member

Откуда: Новосибирск
Сообщений: 1613
X11
fraks
Это заграница, в наше время не исключены какие-то санеции, из-за которых может потеряться доступ к дропбоксу и иным буржуйским сервисам.


так ничего своего, все на буржуйских сервисах работает: языки программирования, технологии, ОС, СУБД, железо и т.д.

Тогда уже нужно что-то кроссплатформенное писать, чтобы под Линуксом работало.


1С? Эльбрус? Байкал?
10 ноя 20, 03:49    [22229278]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить