Я ищу, чтобы запланировать передачу файлов FTP, но для экономии полосы пропускания я хотел бы только загружать файлы, которые были изменены. Какой хороший надежный способ сделать это, который будет работать на разных хостинг-провайдерах?Python ftplib: Лучший способ проверить, был ли файл изменен?
ответ
Во-первых, проверка того, изменился ли локальный файл, действительно не имеет никакого отношения к FTP. Вы заявляете, что только собираетесь открыть FTP-соединение для загрузки файла, если он изменился.
На высоком уровне основной стратегией, которую вам нужно будет использовать, является отслеживание, когда ваше приложение в последний раз проверяется на наличие изменений (предыдущая временная метка выполнения) и сравнивает это с отметками времени, которые вы заинтересованы при загрузке. Если временная метка в файлах более поздняя, они, скорее всего, изменились. Я говорю, скорее всего, потому, что можно обновить только временную метку (например, touch
на unix/linux).
Вот краткий пример, показывающий, как проверить время изменения для всех элементов в определенном каталоге:
import os, time
checkdir="./"
for item in os.listdir(checkdir):
item_path = "%s%s"%(checkdir,item)
mtime = os.path.getmtime(item_path)
print "%s: %s" %(item_path,mtime)
Заметим, что это не делает различий между типами файлов (например, регулярный файл, каталог, символическая ссылка). Прочтите docs on os.path, чтобы узнать, как определить тип файла, чтобы вы могли пропустить определенные типы, если вы так решите.
Вам все равно придется придумать логику, чтобы сохранить время предыдущей «проверки», чтобы вы ссылались на нее при последующих сканированиях. Очень простой способ сделать это - сохранить значение в файле.
Убедитесь, что вы используете стратегию блокировки в случае, если два «сканирования» перекрываются. Загрузка FTP займет некоторое время.
- 1. Как проверить, был ли файл удален, был изменен python
- 2. Проверить, был ли изменен список
- 3. лучший способ обработки ошибки: файл «FileName» был изменен SHAREPOINT \ system
- 4. Как проверить, был ли изменен файл класса перед его сериализацией?
- 5. Лучший способ определить, был ли текст TextView изменен?
- 6. Google Cloud Storage (Python): как проверить, когда был изменен файл?
- 7. Как проверить, был ли PDF изменен
- 8. Javascript - проверить, был ли изменен прототип метода?
- 9. Проверьте, был ли файл изменен между коммитами
- 10. Как проверить, был ли изменен кэш Dalvik
- 11. Как проверить, был ли изменен модуль VBA?
- 12. есть ли способ узнать, был ли файл изменен?
- 13. Проверить конкретный файл был изменен с помощью python watchdog
- 14. Как проверить, был ли файл изменен в C#
- 15. Как проверить, был ли файл изменен через другой процесс?
- 16. Как проверить, был ли файл изменен вне программы?
- 17. Как проверить, был ли изменен модуль VBA?
- 18. Проверьте, был ли растровый файл изменен.
- 19. Как проверить, был ли объект «isEmpty()», если Object.prototype был изменен?
- 20. Есть ли способ узнать, не был ли изменен PHP-скрипт?
- 21. Как узнать, был ли файл изменен?
- 22. Как узнать, был ли изменен файл
- 23. Лучший способ проверить, правильно ли был создан экземпляр экземпляра
- 24. Как проверить сгенерированный файл был изменен в разработке плагина Eclipse?
- 25. Проверьте, был ли изменен EditText
- 26. Может ли проверка MCrypt проверить, был ли изменен хэш?
- 27. Более быстрый способ проверить, был ли удаленный файл изменен, чем md5_file()
- 28. Пакетный файл Windows - проверьте, был ли файл изменен
- 29. Идентификация, когда файл был изменен - Bash
- 30. Java: Как проверить, является ли компьютер был изменен