使用SSIS将文件从http站点下载到我的本地文件?

时间:2012-01-06 17:39:00

标签: batch-file ssis

它很简单但很容易让人头疼。我怎样才能做到这一点 ?我最初的想法是使用bat文件,然后将其添加为SSIS中的任务。

问题是复制,xcopy或robcopy不起作用?

robocopy“http://wpcfs.corp.xx.com/xxx/xxx/BEP/xxx/documents/EB%20Bus%20Ops%20Points%20of%20Contact.xlsx”“C:\ Imports \”

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

如果要从网站下载,则可以使用SSIS脚本通过WebClient,WebRequest或HTTP连接管理器下载文件。通过HTTP连接管理器on this blog下载了一个非常全面的示例。博客评论还包括我在下面列出的代码,它通过WebRequest / WebResponse下载数据。您也可以使用更直接的WebClient,但我发现使用WebClient下载我能够通过WebRequest / WebResponse方法避免使用的大文件时遇到了问题。

Imports System.IO 
Imports System.Net 
Imports System.Text 
Imports System.Web 


Public Class WebRetrieve 
    Public Shared Sub Main() 

       Dim wr As HttpWebRequest = CType(WebRequest.Create("https://reports/reports.txt"), HttpWebRequest)

        Dim ws As HttpWebResponse = CType(wr.GetResponse(), HttpWebResponse) 
        Dim str As Stream = ws.GetResponseStream() 
        Dim inBuf(100000000) As Byte 
        Dim bytesToRead As Integer = CInt(inBuf.Length) 
        Dim bytesRead As Integer = 0 
        While bytesToRead > 0 
            Dim n As Integer = str.Read(inBuf, bytesRead, bytesToRead) 
            If n = 0 Then 
                Exit While 
            End If 
            bytesRead += n 
            bytesToRead -= n 
        End While 
        Dim fstr As New FileStream("c:\New\reports.txt", FileMode.OpenOrCreate, FileAccess.Write)
         fstr.Write(inBuf, 0, bytesRead) 
        str.Close() 
        fstr.Close() 
    End Sub 
End Class

答案 1 :(得分:0)

您可以使用wget for windows下载文件

检查this

安装wget后

wget URL 

将下载当前目录中的文件