2014-03-05

Загрузка файла на Amazon EC2 с помощью Python

Есть у меня задачка, с определенной периодичностью заливать через FTP на имеющийся хостинг Amazon EC2 несколько файлов. Некоторое время я делал это тупо через FTP-клиент. Открыл, соединился, нашел нужную папку, закинул файл, закрыл клиент... Вобщем, как обычно.
Но настоящий программист - ленивый программист. Он всегда ищет, как бы автоматизировать рутинные процессы. В решении этой задачи я использую Python.
В составе поставки есть модуль для работы с FTP: ftplib. Однако в нем не нашлось методов для работы с SFTP, использующим для авторизации файл ключа *.pem. Поэтому я использовал pysftp
Использование выглядит простым, как штанга. Пример все пояснит.

srv = pysftp.Connection(host='sitename.org', username='username', private_key='/path/to/file.pem')
srv.execute('mkdir /server/path')
srv.put('/path/to/local/file.html', '/server/path/file.html')
srv.close()

А теперь начнем делать чудеса, доступные пользователям Mac. Создаем каталог, на который навешиваем действие, созданное в Automator. Событие добавления нового файла будет вызывать наш скрипт, передавая ему путь к файлу. После загрузки будет выведено сообщение во всплывающем окне.

Комментариев нет: