Что бы вы посоветовали лучше всего получить "корпоративные" данные от клиента в AWS S3, чтобы мы могли предоставить SaaS, размещенный на Heroku?
Объемы данных крошечные, это просто ежедневные записи в электронной таблице / CSV. Но чтобы предоставить решение SaaS, нам нужно получить данные с клиентского компьютера на S3 для использования нашим приложением Heroku. Очевидно, что это должен быть автоматизированный и безопасный процесс.
Возможные варианты, о которых я знаю:
SFTP-файлы через сервис, такой как cloudgates.net или cyberduck.io, но для этого нужно каким-то образом настроить процедуру планирования и кажется негибким.
Используйте AWS Storage Gateway для перемещения файлов с машины с кольцевой изоляцией на S3. Это может быть не начало, так как внутренний ИТ-персонал может быть не в состоянии установить виртуальную машину, настроить шлюз и многое другое.
«Облачный модуль Oracle Secure Backup для Amazon S3». Если бы мы могли заставить клиента создать базу данных Oracle, в которую он помещал бы данные, которые нам нужны каждый день, Oracle RMAN мог бы отправить их на S3. Но нам нужны простые текстовые файлы в S3, а не в базе данных Oracle, поэтому, возможно, это не имеет смысла (поскольку у нас есть приложение Heroku, а не экземпляр EC2 с Oracle).
Мне кажется, что единственный подходящий подход к автоматической загрузке данных - это написать код, используя AWS SDK в Java или .Net, который работает на клиентской машине. Это проблематично, если это не то, что штатный ИТ-персонал может поддерживать, особенно с точки зрения безопасности.
Я подумал, что спрошу здесь, если мне не хватает простого варианта, который является улучшением по сравнению с Бобом от учетных записей, загружающих файлы через наше приложение Heroku в S3 каждое утро?
Для подобных задач использую SSH (SFTP). Вот шаги, чтобы сделать это красивым и безопасным:
.ssh/authorized_keys
или аналогичный на экземпляре S3.sftp -i <public key> <file> <remote location>
чтобы перетащить файл туда, где он вам нужен.Это очень хорошо работает для меня почти в каждом случае, когда мне нужно специальное подключение к серверу. Если вы работаете в Windows, использование Putty вместе с Puttygen, Plink и службой планировщика Windows для достижения чего-то подобного должно быть возможно.
Вы должны использовать планировщик, чтобы этот получатель работал - я вообще-то думаю, что это намного чище, чем создание скрипта или чего-то, что делает свое время. Использование всех этих стандартных битов облегчает мышление и другим.
РЕДАКТИРОВАТЬ: У Amazon есть дружелюбное руководство по сертификату. Вот.