Windows Azure - 在ASP.NET应用程序中通过FTP加载数据

时间:2011-09-17 15:42:12

标签: ftp azure ftpwebrequest

我正在尝试将数据本地存储在windows azure上,我之前通过FTP下载了这些数据。

我下载这样的文件(适用于我的本地机器):

            string[] files = GetFileList("/config/shared/");
            foreach (string file in files)
            {
                Download(file, "/config/shared/", _myConfigsStorage.RootPath + "userUpload\\shared\\");
            }

但是在第一行发生错误:

  

对象引用未设置为对象的实例。

这里是GetFileList-Method:

private static string[] GetFileList(string remoteDirSoruceFiles)
    {
        string[] downloadFiles;
        StringBuilder result = new StringBuilder();
        WebResponse response = null;
        StreamReader reader = null;
        try
        {
            FtpWebRequest reqFTP;
            reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(_ftpHostUrl + remoteDirSoruceFiles));
            reqFTP.UseBinary = true;
            reqFTP.Credentials = new NetworkCredential(_ftpUserName, _ftpUserPwd);
            reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
            reqFTP.Proxy = null;
            reqFTP.KeepAlive = false;
            reqFTP.UsePassive = false;
            response = reqFTP.GetResponse();
            reader = new StreamReader(response.GetResponseStream());
            string line = reader.ReadLine();
            while (line != null)
            {
                result.Append(line);
                result.Append("\n");
                line = reader.ReadLine();
            }
            // to remove the trailing '\n'
            result.Remove(result.ToString().LastIndexOf('\n'), 1);
            return result.ToString().Split('\n');
        }
        catch (Exception)
        {
            if (reader != null)
            {
                reader.Close();
            }
            if (response != null)
            {
                response.Close();
            }
            downloadFiles = null;
            return downloadFiles;
        }
    }

在此上下文中我不理解此错误消息。听起来,就像GetFileList返回一个空值。

是否可以在Windows Azure上通过FtpWebRequest进行FTP连接,或者让我配置防火墙或某事。别的吗

有什么建议吗?

最诚挚的问候, 帕特里克

2 个答案:

答案 0 :(得分:0)

Windows Azure存储不支持FTP。

可以编写Windows Azure计算应用程序来支持这一点,但它今天是DIY: http://blog.maartenballiauw.be/post/2010/03/15/Using-FTP-to-access-Windows-Azure-Blob-Storage.aspx

答案 1 :(得分:0)

另外在我的另一篇文章more general question中也提到过,我可以用FTPLib解决我的问题。 这意味着:您可以将文件复制/加载到azure或外部源! : - )