Получение файла с сервера заданий на мой Fressend Server
Вопрос
Мне нужны несколько предложений о том, как получить динамически сгенерированные файлы с помощью заданий, работающих на моем удаленном сервере заданий на мой сервер Frontend, выполняющий панель пользователя для управления заданиями.
Я не хочу, чтобы его IP-сервер рабочего сервера был разоблачен, поэтому позволяет пользователю напрямую загрузку с сервера заданий нежелательно.
Мне также нужна какая-то библиотека jQuery, чтобы показать скорость загрузки, строку прогресса какой-то сортировки.
Решение
Я думаю, что это поможет узнать ответы на несколько вопросов.
С верхней части моей головы:
- Насколько большими могут быть файлы?
- Как долго он может принять, чтобы загрузить файл?
- Какой формат файлы?
- Будучи файлами, которые вы выбираете с Server Server Static? (или ли они регенерируются каждый раз?)
Редактировать:
jquery ui имеет индикатор. (Документы)
С вашей панели пользователя у вас будет такая ссылка:
<a href="remoteTxtFile.php?file_id=100">File 100</a>
Эта ссылка должна начать jquery.getjson () Запрос на RemotetXtFile.php на вашем сервере Frontend, который:
- Проверяет, если запрошенный файл уже загружен.
- Если он имеет, верните объект JSON, как это: {«Местоположение»: '/cache/file_100.txt'}
- Обратный вызов успеха AJAX может показать ссылку на файл.
- Если нет, начните загрузку файла, используя что-то (идеи дальше вниз), которые могут выводить прогресс в текстовый файл. Сохраните файл в папку «Cache». Верните объект JSON, как это: {'Progress': 0}
- Периодически (каждую секунду или около того) Пожаруйте еще один GetJSON () к сценарию PHP, который считывает файл TXT Doad Proggter и возвращает объект JSON, как это: {'Progress': 52} (процентов)
- Когда загрузка завершена, из PHP Return JSON, как это: {'Местоположение': '/cache/file_100.txt'}
- Когда Ajax Callback Callback видит «местоположение», файл сделан, так что показать ссылку на него.
Я не уверен, что вы должны использовать для фактической загрузки файлов. Проблема с использованием PHP и stream_notification_callback. Чтобы сделать загрузку (и выходной прогресс) заключается в том, что весь файл будет загружен в память, что не хорошо для файла 1 ГБ.
Возможно, используя WGET, чтобы сделать фактическую загрузку, будет работать лучше.