如何实现控制台应用程序从Azure中的FTP存储读取xml文件?

时间:2017-02-28 14:40:50

标签: azure office365 azure-webjobs

我想创建一些控制台应用程序。在这个控制台应用程序中,我想从某个位置(Azure中具有FTP访问权限的位置)读取预定的所有xml文件,并且对于每个已读取的xml文件,我想在Office 365站点中创建新的列表项。我正在考虑将控制台应用程序实现为Azure webjob。 Azure中是否有可能通过FTP将文件添加到某个位置?此位置还需要可以从Azure Web作业访问。

2 个答案:

答案 0 :(得分:0)

是的,如果您正在寻找FTP实例,您可以按照下面的文章https://ftp2azure.codeplex.com/来实现它,并使用.Net FTP客户端将文件移动到FTP位置。

AzCopy实用程序也是一种广泛用于此类操作的工具。

建议使用Azure blob使用REST端点存储此类XML文件,从而提供更高的吞吐量和更高的安全性。

最好使用Azure功能而不是Azure Web作业有多种原因,例如托管在应用服务上的Web作业共享您实际需要的Web应用或其他应用运行所需的资源,它也是应用服务计划。此外,Web作业有点过时,因为Microsoft Azure本身会提升Azure功能而不是Web作业。请参考https://docs.microsoft.com/en-us/azure/azure-functions/functions-compare-logic-apps-ms-flow-webjobs 并做出相应的决定。

答案 1 :(得分:0)

  

Azure中是否有可能通过FTP将文件添加到某个位置?此位置也需要可以从Azure Web作业访问。

首先,正如我们所知,App Service使我们能够access site’s files via FTP,我们可以在Azure App Service Web应用程序中将控制台应用程序作为WebJobs运行,我们也可以从WebJobs中的站点D:\home访问文件功能,像这样。

string targetDirectory = @"D:\home\myxml";

List<string> fileEntries = Directory.GetFiles(targetDirectory).Where(f => Path.GetExtension(f) == ".xml").ToList();

foreach (var item in fileEntries)
{
    Console.WriteLine(item);
}

但是App Service有limited storage space,我们不应该在网站服务器上存储太多静态文件。正如Mohammed Shamil所说,如果可能,您可以尝试将XML文件存储在Azure存储中。一些存储工具(如AzCopy,Azure Storage Explorer等)可用于轻松上传/下载文件。