监视Azure blob存储中的容器以进行更改的最佳方法是什么?

Bil*_*ney 5 c# azure azure-storage azure-storage-blobs

我正在寻找监视Azure blob存储中的容器/文件夹以进行更改的最佳方法.到目前为止,我只找到了一种方法,即在某个地方运行一个工作进程,定期查看容器的内容以查找更改.

有没有更好的办法?

Mik*_*e S 9

Storage SDK不提供此功能,但它是新WebJobs SDK中的主要功能.有一个[BlobInput]属性允许您指定要侦听的容器,它包含一个有效的blob侦听器,当检测到新的blob时,它将调度到该方法.有一些blob收听的例子:http://blogs.msdn.com/b/jmstall/archive/2014/02/18/azure-storage-bindings-part-1-blobs.aspx

这是一个示例用法:

    public static void CopyWithStream(
        [BlobInput("container/in/{name}")] Stream input,
        [BlobOutput("container/out1/{name}")] Stream output
        )
    {
        Debug.Assert(input.CanRead && !input.CanWrite);
        Debug.Assert(!output.CanRead && output.CanWrite);

        input.CopyTo(output);
    }
Run Code Online (Sandbox Code Playgroud)

blob监听器在这里:

        JobHost host = new JobHost(acs); // From nuget: Microsoft.WindowsAzure.Jobs.Host
        host.RunAndBlock();  
Run Code Online (Sandbox Code Playgroud)

  • 值得一提的是,容器每 10 分钟(!)被扫描一次。因此不会立即触发 Web 作业。 (2认同)