Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Azure WebJob将文件上载到Azure Blob存储?(使用C#,.NET)_C#_.net_File Upload_Azure Storage Blobs_Azure Webjobs - Fatal编程技术网

如何使用Azure WebJob将文件上载到Azure Blob存储?(使用C#,.NET)

如何使用Azure WebJob将文件上载到Azure Blob存储?(使用C#,.NET),c#,.net,file-upload,azure-storage-blobs,azure-webjobs,C#,.net,File Upload,Azure Storage Blobs,Azure Webjobs,我对Azure WebJob有一个非常基本的了解,即它可以在后台执行任务。我想上传文件到Azure Blob存储,特别是使用Azure WebJob。我想知道如何做到这一点,从头开始。假设要上载的文件在系统上的某个文件夹(例如C:/Users/Abc/Alpha/Beta/)中本地可用 如何以及在何处定义应该执行的后台任务 如何确保在同一文件夹中有新文件时( C:/Users/Abc/Alpha/Beta/)该功能会自动触发,并且此新文件也会传输到Azure Blob存储 我可以监控每个文件的传

我对Azure WebJob有一个非常基本的了解,即它可以在后台执行任务。我想上传文件到Azure Blob存储,特别是使用Azure WebJob。我想知道如何做到这一点,从头开始。假设要上载的文件在系统上的某个文件夹(例如C:/Users/Abc/Alpha/Beta/)中本地可用

  • 如何以及在何处定义应该执行的后台任务
  • 如何确保在同一文件夹中有新文件时( C:/Users/Abc/Alpha/Beta/)该功能会自动触发,并且此新文件也会传输到Azure Blob存储
  • 我可以监控每个文件的传输进度吗?还是所有的文件
  • 如何处理传输期间的连接故障?我还应该担心哪些其他错误
  • 如何以及在何处定义应该执行的后台任务

    根据您的描述,您可以在VS中创建webjob控制台应用程序。您可以在本地运行此控制台应用程序

    更多详细信息,您可以参考本文了解如何在VS中创建webjob

    注意:由于您需要查看本地端文件夹,此webjob正在您的本地端运行,而不是上载到azure web应用程序

    如何确保每当同一文件夹(C:/Users/Abc/Alpha/Beta/)中有新文件可用时,该功能会自动触发,并且该新文件也会传输到Azure Blob存储

    据我所知,webjob支持,它将监视对特定目录的文件添加/更改,并在发生时触发作业功能

    更多详细信息,请参考以下代码示例:

    Program.cs:

            static void Main()
            {
                var config = new JobHostConfiguration();
                FilesConfiguration filesConfig = new FilesConfiguration();
                //set the root path when the function to watch the folder
                filesConfig.RootPath = @"D:\";
    
                config.UseFiles(filesConfig);
                var host = new JobHost(config);
                // The following code ensures that the WebJob will be running continuously
                host.RunAndBlock();
            }
    
    功能C:

     public static void ImportFile(
                  [FileTrigger(@"fileupload\{name}", "*.*", WatcherChangeTypes.Created | WatcherChangeTypes.Changed)] Stream file,
                  FileSystemEventArgs fileTrigger,
                   [Blob("textblobs/{name}", FileAccess.Write)] Stream blobOutput,
                  TextWriter log)
            {
                log.WriteLine(string.Format("Processed input file '{0}'!", fileTrigger.Name));
    
                file.CopyTo(blobOutput);
    
                log.WriteLine("Upload File Complete");
    
            }
    
    我可以监控每个文件的传输进度吗?还是所有的文件

    据我所知,有一个[BlobInput]属性,允许您指定要侦听的容器,它包括一个高效的blob侦听器,当检测到新blob时,该侦听器将分派给该方法。更多细节,你可以参考这个

    如何处理传输期间的连接故障?我还应该担心哪些其他错误

    您可以使用try-catch来捕获错误。如果发生错误,您可以将详细信息发送到队列或在blob中写入一个txt文件。然后,您可以根据队列消息或blob txt文件执行一些操作

    如何以及在何处定义应该执行的后台任务

    根据您的描述,您可以在VS中创建webjob控制台应用程序。您可以在本地运行此控制台应用程序

    更多详细信息,您可以参考本文了解如何在VS中创建webjob

    注意:由于您需要查看本地端文件夹,此webjob正在您的本地端运行,而不是上载到azure web应用程序

    如何确保每当同一文件夹(C:/Users/Abc/Alpha/Beta/)中有新文件可用时,该功能会自动触发,并且该新文件也会传输到Azure Blob存储

    据我所知,webjob支持,它将监视对特定目录的文件添加/更改,并在发生时触发作业功能

    更多详细信息,请参考以下代码示例:

    Program.cs:

            static void Main()
            {
                var config = new JobHostConfiguration();
                FilesConfiguration filesConfig = new FilesConfiguration();
                //set the root path when the function to watch the folder
                filesConfig.RootPath = @"D:\";
    
                config.UseFiles(filesConfig);
                var host = new JobHost(config);
                // The following code ensures that the WebJob will be running continuously
                host.RunAndBlock();
            }
    
    功能C:

     public static void ImportFile(
                  [FileTrigger(@"fileupload\{name}", "*.*", WatcherChangeTypes.Created | WatcherChangeTypes.Changed)] Stream file,
                  FileSystemEventArgs fileTrigger,
                   [Blob("textblobs/{name}", FileAccess.Write)] Stream blobOutput,
                  TextWriter log)
            {
                log.WriteLine(string.Format("Processed input file '{0}'!", fileTrigger.Name));
    
                file.CopyTo(blobOutput);
    
                log.WriteLine("Upload File Complete");
    
            }
    
    我可以监控每个文件的传输进度吗?还是所有的文件

    据我所知,有一个[BlobInput]属性,允许您指定要侦听的容器,它包括一个高效的blob侦听器,当检测到新blob时,该侦听器将分派给该方法。更多细节,你可以参考这个

    如何处理传输期间的连接故障?我还应该担心哪些其他错误


    您可以使用try-catch来捕获错误。如果发生错误,您可以将详细信息发送到队列或在blob中写入一个txt文件。然后,您可以根据队列消息或blob txt文件执行一些操作。

    我建议您先阅读一些有关此主题的教程。如果您有具体问题,请返回并提供一些问题的示例代码谢谢!我也试着这么做。如果你在这方面有任何资源,请分享。我建议你先阅读一些关于这个主题的教程。如果您有具体问题,请返回并提供一些问题的示例代码谢谢!我也试着这么做。如果您对此有任何资源,请共享。