Первоначально задан этот вопрос, который является наилучшим способом для загрузки файлов через SFTP или FTPS в SSIS. Теперь он просто перечисляет плюсы и минусы каждого решения. В настоящее время я лично использую библиотеку CozyRoc SFTP, но в какой-то момент я использовал каждое из следующих решений.
СЧЕТНАЯ КОМПОНЕНТНАЯ БИБЛИОТЕКА
Метод: установите библиотеку компонентов SSIS из CozyRoc, Codeplex, BizCrypto, PragmaticWorks или какой-либо другой поставщик на каждом сервере разработки и производства и использовать задачу SFTP для загрузки файлов.
Плюсы: Прост в использовании. Он выглядит, пахнет и чувствует себя как обычная задача SSIS. SSIS также распознает пароль как конфиденциальную информацию и позволяет вам использовать все обычные варианты защиты конфиденциальной информации, а не просто хранить ее в открытом тексте незащищенным образом. Хорошо работает с другими задачами SSIS, такими как Контейнеры ForEach Loop. Ошибки при загрузке и загрузке. Хорошо работает, когда вы не знаете имена файлов на удаленном FTP-сайте для загрузки или когда вы не будете знать имя файла для загрузки до времени выполнения.
Минусы: за исключением решения Codeplex, это стоит денег для лицензии в производственной среде. Требуется установка библиотек на каждую машину разработки и производства. Если это решение Codeplex, вы используете программное обеспечение, которое не поддерживается каким-либо конкретным поставщиком. Это также заставляет вас зависеть от продавца обновлять свои библиотеки между каждой версией. Например, до 2008 года RTM'd, я разрабатывал новый сервер в версии CTP 2008 года, а библиотека CozyRoc 2005 была несовместима с ним. В конце концов они выпустили совместимую версию 2008 года, но мне пришлось временно использовать решение командной строки для решения этой проблемы.
ПРОГРАММА SFTP COMMAND LINE
Метод: установите бесплатное приложение SFTP из командной строки, такое как Putty и WinSCP, и выполните его либо путем запуска командного файла, либо задачи процесса операционной системы. Инструкции для этого через WinSCP перечислены здесь.
Плюсы: бесплатные, бесплатные и бесплатные. Вы можете быть уверены, что это безопасно, если вы используете Putty, поскольку многочисленные клиенты FTP-интерфейса GUI, похоже, используют Putty под обложками. Вы НЕОБХОДИМО знать, что используете SSH2, а не SSH.
Минусы: две утилиты командной строки, которые я пытался (Putty и Cygwin), требовали хранения SFTP-пароля в незащищенном месте. Я не нашел хороший способ захвата ошибок или ошибок при загрузке файлов. Процесс не выглядит и не пахнет, как SSIS. Большая часть кода инкапсулируется в текстовые файлы вместо самого SSIS. Трудно использовать, если вы не знаете точного имени файла, который вы загружаете или загружаете.
3RD PARTY С# или VB.NET LIBRARY
Метод: установите библиотеку SFTP или FTPS и используйте Script Задачу, которая ссылается на библиотеку для загрузки файлов. (Я никогда не пробовал этого, поэтому я собираюсь угадать доводы за и против)
Плюсы: Вероятно, легко зафиксировать ошибки. Должен хорошо работать с переменными, поэтому он, вероятно, будет прост в использовании, даже если вы не знаете точное имя загружаемого или загружаемого файла.
Минусы: это задача Script в сочетании с библиотеками .NET. Если вы используете SSIS, то, вероятно, вам более удобно работать с задачами SSIS, а затем с кодом .NET. Задачи Script также трудно устранить, так как они не имеют одинаковых инструментов и функций отладки как обычные .NET-проекты. Создает зависимость от стороннего кода, который может не работать между различными версиями SQL Server. Справедливости ради, скорее всего, скорее всего, он будет работать между различными версиями SQL Server, чем сторонняя библиотека задач SSIS. Еще один огромный con - я не нашел бесплатную библиотеку С# или VB.NET, которая делает это пока. Поэтому, если кто-нибудь знает об одном, тогда, пожалуйста, дайте мне знать!