【问题标题】:I want to know the location of file added to blob storage我想知道添加到 blob 存储的文件的位置
【发布时间】:2019-05-15 14:50:25
【问题描述】:

我在 Azure blob 存储中有一个 blob 容器,在这个容器内有很多目录。同样在这些目录中可以有其他目录。现在假设如果有人将 blob 添加到容器内的任何位置,我想要位置和 blob 名称。请帮助我提供您的意见。

我已经尝试过基本的 blobtrigger azure 功能,但无法实现更多功能。

提前致谢

【问题讨论】:

  • 您应该为 azure 存储帐户使用 Azure 事件网格事件功能。 docs.microsoft.com/en-us/azure/storage/blobs/…
  • 你应该得到path/filenamecontainerName/{name}路径设置,你需要什么位置,容器下的相对路径还是完整的url?另外,您使用什么语言?
  • 我正在使用 Java,整个路径都可以..!!我只想在这些嵌套目录中找到文件。我的要求是,每当将新的 blob 添加到任何子目录时,我都应该能够找到它们。
  • @KunalTrivedi 示例 java blob 触发器有 path = "samples-workitems/{name}"@BindingName("name") String namename 不是给你dir../filename 吗?你能详细说明whole path,格式为containerName/dir.../filename还是什么?
  • @JerryLiu 是的,这正是我需要的。每当文件上传到容器内的任何位置(也在子目录下)时,容器名称/目录/文件名..!!

标签: java azure azure-storage azure-functions azure-blob-storage


【解决方案1】:

试试下面的代码。元数据name 提供blobName,其中包括目录及其文件名。 BlobTrigger 提供您希望的完整路径,即 containerName/blobName。

@FunctionName("BlobTriggerJava")
@StorageAccount("AzureWebJobsStorage")
public void run(
    @BlobTrigger(name = "content", path = "containerName/{name}", dataType = "binary") byte[] content,
    @BindingName("name") String name, @BindingName("BlobTrigger") String wholePath, 
    final ExecutionContext context
) {
    context.getLogger().info("Java Blob trigger function processed a blob. Name: " + name);
    context.getLogger().info("Whole path: " + wholePath);
}

【讨论】:

    猜你喜欢
    • 2020-01-09
    • 2020-06-17
    • 2020-10-24
    • 2014-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-02
    相关资源
    最近更新 更多