Единственный способ, которым вы должны управлять FTP-сервером через DirectAdmin. Поэтому, если у вас нет API для DirectAdmin, и у вас есть к нему доступ, или ваш хостинг-провайдер предлагает какой-то API, вы не сможете этого сделать.
Если вы можете управлять своими пользователями на общем хосте с помощью системы(), то непременно отправляйтесь по этому маршруту.
Если вы не можете, вам может потребоваться создать сценарий, который выполняется на сервере, который принимает входящие запросы, а затем напрямую работает с DirectAdmin для управления пользователями. Это потребует, чтобы скрипт знал учетные данные DirectAdmin, и если какие-либо обновления происходят с DirectAdmin, это может потенциально нарушить ваш скрипт. Я был бы очень осторожен с этим методом, так как любой, кто имеет доступ к этому скрипту, мог бы управлять пользователями ftp. Если ваш клиент может управлять этими пользователями FTP, любой может. Как пользователи будут «аутентифицироваться» с клиентом, если есть какая-либо аутентификация. Если да, то как они аутентифицируются? Поскольку ваш скрипт «api» также должен работать с этой аутентификацией.
Мой вопрос: вам НЕТ создавать пользователя FTP? Если им просто нужно загрузить файл, не могли ли они просто загрузить файл через онлайн-форму? Или через клиента? Вам нужно использовать FTP?
EDIT: Так как я уже говорил в комментариях, одна идея будет иметь на стороне сервера скрипт (возможно, PHP), который будет обрабатывать управление файлами. Он будет принимать запросы на загрузку/удаление/удаление файлов. Когда файл загружается на сайт, он будет сохранен и будет возвращать специальный токен вместе с расположением файла.
Затем клиент берет токен, сохраняет его локально, и когда пользователь управляет файлом на клиенте, он будет использовать этот токен для будущих модификаций. Я бы генерировал этот токен случайно (не основываясь на каких-либо данных пользователя). То, как вы храните токен, зависит от вас, может быть в файловой системе с файлами или в базе данных.
Связь между клиентом и сайтом должна осуществляться через SSL, если это возможно, для остановки атак MITM.
Что касается загрузки файлов, это действительно зависит от того, как ваш клиент выполняет аутентификацию своих пользователей. Если это происходит через центральную базу данных, доступ к этому серверу с общим хостингом, если вы не хотите этого делать, тогда вам нужно что-то подобное системе открытых ключей. Чтобы клиент мог отправить ключ, который может использовать хост-скрипт, если пользователь действителен или нет.Но тогда вы должны знать сценарий, когда ключ был отозван, и т. Д.
Итак, это зависит от вас, как вы хотите продолжить эту часть.
Какой сервер FTP вы используете? Как вы обычно создаете пользователей FTP? – William
Обычно я создаю их с помощью панели управления DirectAdmin, и я действительно не знаю, какой сервер установлен. – Dominique
Пользователи, использующие ваше клиентское программное обеспечение, знают информацию в DirectAdmin? – William