Windows Azure - загрузка данных через FTP в приложении ASP.NET - PullRequest
1 голос
/ 17 сентября 2011

Я пытаюсь сохранить данные локально в Windows Azure, которую я загружал ранее по FTP.

Я загружаю файл следующим образом (работает на моем локальном компьютере):

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

Но в первой строке возникает ошибка:

Ссылка на объект не установлена ​​на экземпляр объекта.

Здесь метод GetFileList:

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 возвращает нулевое значение.

Возможны ли FTP-подключения через FtpWebRequest в Windows Azure или я должен настроить брандмауэр или STH.еще?

Есть предложения?

С наилучшими пожеланиями, Патрик

Ответы [ 2 ]

0 голосов
/ 19 сентября 2011

Как уже упоминалось в моем другом, более общем вопросе , я мог бы решить мою проблему, выполнив ftp-запрос с FTPLib .Это означает: Вы можете копировать / загружать файлы в Azure или во внешний источник!: -)

0 голосов
/ 18 сентября 2011

Windows Azure Storage не поддерживает FTP.

Для поддержки этого могут быть написаны вычислительные приложения Windows Azure, но сегодня это сделай сам: http://blog.maartenballiauw.be/post/2010/03/15/Using-FTP-to-access-Windows-Azure-Blob-Storage.aspx

...