Câu hỏi này ban đầu được hỏi là phương pháp tốt nhất để tải lên tệp qua SFTP hoặc FTPS trong SSIS. Nó bây giờ chỉ liệt kê những ưu và nhược điểm của từng giải pháp. Cá nhân tôi sử dụng thư viện SFTP của CosyRoc những ngày này, nhưng tôi đã sử dụng từng giải pháp dưới đây tại một thời điểm này hay cách khác.Phương pháp tốt nhất cho tệp SFTP hoặc FTPS qua SSIS
SSIS COMPONENT THƯ VIỆN
Phương pháp: Cài đặt thư viện thành phần SSIS từ CozyRoc, Codeplex, BizCrypto, PragmaticWorks, hoặc một số nhà cung cấp khác trên mỗi phát triển và sản xuất máy chủ và sử dụng nhiệm vụ SFTP để tải lên các tập tin.
Ưu điểm: Dễ sử dụng. Nó trông, mùi và cảm thấy giống như một nhiệm vụ SSIS bình thường. SSIS cũng nhận ra mật khẩu là thông tin nhạy cảm và cho phép bạn tất cả các tùy chọn bình thường để bảo vệ thông tin nhạy cảm thay vì chỉ lưu trữ nó trong văn bản rõ ràng một cách không an toàn. Hoạt động tốt với các nhiệm vụ SSIS khác như ForEach Loop Containers. Lỗi khi tải lên và tải xuống không thành công. Hoạt động tốt khi bạn không biết tên của các tệp trên trang FTP từ xa để tải xuống hoặc khi bạn không biết tên tệp sẽ tải lên cho đến khi chạy.
Nhược điểm: Ngoại trừ giải pháp Codeplex, điều này tốn tiền để cấp phép trong môi trường sản xuất. Yêu cầu cài đặt các thư viện trên mỗi máy phát triển và sản xuất. Nếu đó là giải pháp Codeplex, thì bạn đang sử dụng phần mềm không được hỗ trợ bởi bất kỳ nhà cung cấp cụ thể nào. Điều này cũng làm cho bạn phụ thuộc vào nhà cung cấp để cập nhật các thư viện của họ giữa mỗi phiên bản. Ví dụ, trước năm 2008 RTM'd, tôi đã phát triển một máy chủ mới trên một phiên bản CTP năm 2008 và thư viện CozyRoc 2005 không tương thích với nó. Cuối cùng họ phát hành một phiên bản tương thích năm 2008, nhưng tôi đã tạm thời sử dụng giải pháp dòng lệnh để giải quyết vấn đề này.
COMMAND LINE SFTP CHƯƠNG TRÌNH
Phương pháp: Cài đặt một dòng lệnh miễn phí SFTP ứng dụng như Putty và WinSCP và thực hiện nó bằng cách chạy một tập tin thực thi hoặc quá trình hệ điều hành nhiệm vụ. Hướng dẫn thực hiện việc này thông qua WinSCP được liệt kê here.
Ưu điểm: Miễn phí, miễn phí và miễn phí. Bạn có thể chắc chắn rằng nó là an toàn nếu bạn đang sử dụng Putty vì rất nhiều GUI FTP khách hàng xuất hiện để sử dụng Putty dưới bìa. Bạn chắc chắn biết bạn đang sử dụng SSH2 chứ không phải SSH.
Nhược điểm: Hai tiện ích dòng lệnh tôi đã thử (Putty và Cygwin) yêu cầu lưu trữ mật khẩu SFTP ở một vị trí không an toàn. Tôi đã không tìm thấy cách tốt để nắm bắt lỗi hoặc lỗi khi tải tệp lên. Quá trình này không nhìn và có mùi giống như SSIS. Hầu hết mã được đóng gói trong các tệp văn bản thay vì bản thân SSIS. Khó sử dụng nếu bạn không biết chính xác tên của tệp bạn đang tải lên hoặc tải xuống.
Một 3RD BÊN C# hoặc VB.NET THƯ VIỆN
Phương pháp: Cài đặt thư viện SFTP hoặc FTPS và sử dụng một công tác Script tham chiếu đến thư viện để tải lên các tập tin. (Tôi đã không bao giờ thử điều này, vì vậy tôi sẽ đoán tại những thuận và chống)
Ưu điểm: Có thể dễ dàng nắm bắt lỗi. Nên làm việc tốt với các biến, vì vậy nó có thể sẽ dễ sử dụng ngay cả khi bạn không biết chính xác tên của tập tin bạn đang tải lên hoặc tải xuống.
Nhược điểm: Đó là tác vụ tập lệnh được kết hợp với thư viện .NET. Nếu bạn đang sử dụng SSIS, thì bạn có thể thoải mái hơn với các tác vụ SSIS sau đó là mã .NET. Các tác vụ kịch bản cũng khó khắc phục vì chúng không có các công cụ và tính năng gỡ lỗi giống như các dự án .NET thông thường.Tạo sự phụ thuộc vào mã của bên thứ ba có thể không hoạt động giữa các phiên bản SQL Server khác nhau. Để công bằng, có thể có khả năng làm việc giữa các phiên bản SQL Server khác với thư viện tác vụ SSIS của bên thứ 3. Một con số rất lớn - Tôi đã không tìm thấy một thư viện C# hoặc VB.NET miễn phí mà thực hiện điều này như được nêu ra. Vì vậy, nếu bất cứ ai biết về một, sau đó xin vui lòng cho tôi biết!
Đối với các giải pháp miễn phí, FTPS có vẻ tốt ngoại trừ khi tôi phải sử dụng SFTP.Vì tôi muốn có một kiến trúc để xử lý cả hai kịch bản, có lẽ tôi sẽ dựa vào dòng lệnh sftp. Đối với trả tiền cho các giải pháp, CozyRoc, SecureBlackBox, và Rebex tất cả nhìn khá tốt. Cảm ơn! –