【问题标题】:Azure Storage Parse Blob into TableAzure 存储将 Blob 解析为表
【发布时间】:2015-07-29 09:35:43
【问题描述】:

我对 WebJobs 真的很陌生,我正在为一些看似微不足道的事情而苦苦挣扎。我有一个名为“mydatastorage”的存储帐户和一个名为“mydatacontainer”的容器。我已经在网上搜索了一个星期,现在试图做以下基本场景:

我有大量 html 文件的 blob(已存储在 Azure 中)。我编写了一些代码,可以将 html 字符串转换为 TableEntity。然后我想将 TableEntity 保存到表“mydatatable”中。看来我可以使用[Table] 属性来简化将实体保存到表的过程,或者在方法调用中手动将其保存到表中。我的问题只是让方法签名正确,然后如何让 blob 进入该方法。我对[Blob][BlobTrigger] 之类的所有属性以及ICollector<T> 之类的类型以及使用它们的正确方法(以及何时)感到有些困惑。如果有人知道解释与此类似情况的教程,我很想知道。

【问题讨论】:

    标签: azure azure-storage azure-blob-storage azure-webjobs azure-table-storage


    【解决方案1】:

    尝试this page 以获取有关使用BlobTrigger 的信息。我们所有关于 WebJobs SDK 的最新文档都可以在这个主 [资源页面}(http://azure.microsoft.com/en-us/documentation/articles/websites-webjobs-resources) 上找到。

    这里有一个例子可以为你指明正确的方向。您可以设置BlobTrigger 在添加 blob 时触发,并使用TableAttribute 绑定到输出表。 ICollector<T> 绑定将为您添加到其中的任何实例添加表实体。您可以在上述资源链接中找到有关表绑定的更多选项。希望这会有所帮助。

    public static void ImportHtmlBlob(
        [BlobTrigger("input/{name}")] Stream input,
        string name,
        [Table("yourtable")] ICollector<YourTableType> output)
    {
        ...
    }
    

    【讨论】:

    • 您提供的第一个链接很有帮助,第二个链接需要一些时间才能完成。感谢伟大的链接!我确实有一个问题。此代码是否会拾取 Blob 存储中已经存在的 blob(这是我想要的)?它似乎不是,或者我只是需要更有耐心等待它开始处理 blob?我有 100,000 个 html blob,所以也许我只是没有足够的耐心,还是我需要做其他事情来启动现有 blob 的进程?
    • BlobTrigger 使用的扫描/触发算法在我上面链接的第一页中有详细说明(同样是here)。对于预先存在的 blob,将在启动扫描期间拾取这些 blob。您应该会看到它们开始被处理,并且在处理完它们后,将按照该帮助页面中的详细说明为每个文件写一个 Blob 收据。
    猜你喜欢
    • 1970-01-01
    • 2018-01-11
    • 2018-07-09
    • 1970-01-01
    • 2019-12-19
    • 2017-11-10
    • 1970-01-01
    • 2020-08-20
    • 2012-03-02
    相关资源
    最近更新 更多