Итак, вот настройка, с которой я должен работать:
У меня всего пять серверов в разных местах. Один сервер является чисто веб-сервером для размещения статических файлов. Остальные четыре сервера являются исключительно FTP-серверами, каждый из которых содержит файлы, загруженные пользователями с помощью сценариев PHP.
Я хочу выбрать сервер с наибольшим количеством свободного места и отправить на него следующий загруженный пользователем файл. Я искал вокруг, и, кажется, нет никакого способа сделать это только с помощью команд FTP.
Я нашел вопрос о Определение свободного места на FTP-сервере, который показал, что можно периодически создавать и обновлять файл с помощью сценария Linux Shell, но серверы, которые у меня есть, остаются и будут оставаться машинами Windows.
Моим единственным решением было бы разместить веб-серверы на FTP-серверах с помощью простого index.php, содержащего оставшийся размер файла, определяемый disk_free_space()
но это кажется слишком много для чего-то такого простого.
Все, что я ищу, — это способ узнать эту информацию с помощью команд FTP или, возможно, каким-либо образом связать серверы с VPN и использовать PHP для определения количества свободного места, хотя я бы точно не знал как это сделать, или даже, если бы это сработало …
Спасибо всем заранее!
Если вы используете FTP-сервер IIS на компьютере с Windows, вы можете настроить IIS для включения свободного дискового пространства в LIST
ответ команды.
В диспетчере IIS перейдите на свой FTP-сайт и выберите Просмотр каталога FTP апплет. Там, в Отображать следующую информацию в списке каталогов настройки, проверьте Доступные байты.
Затем LIST
Ответ команды FTP будет выглядеть так:
226-Directory has 27,906,826,240 bytes of disk space available.
226 Transfer complete.
Вы можете проверить это с WinSCP FTP-клиент, он может использовать эту информацию. Просто иди к Доступное пространство табуляция из Диалог Информация о сервере и протоколе.
(Я автор WinSCP)
Других решений пока нет …