java - 如何在@BlobOutput中动态定义 'path'?

标签 java azure azure-functions

我正在查看以下代码示例 https://github.com/Azure/azure-functions-java-worker

public class MyClass {
    @FunctionName("copy")
    @StorageAccount("AzureWebJobsStorage")
    @BlobOutput(name = "$return", path = "samples-output-java/{name}")
    public static String copy(@BlobTrigger(name = "blob", path = "samples-input-java/{name}") String content) {
        return content;
    }
}

@BlobOutput中,我们使用{name}参数,因为它是在@BlobInput中提供给我们的。如何在我的函数中动态生成该名称?

我希望我的 Blob 名称为 files/E36567AB1B93F7D9798,其中 E36567AB1B93F7D9798 部分是从 Blob 内容生成的哈希值。我想在函数内部生成它并返回哈希作为输出。有点像 GitHub 为文件创建唯一的 ID。

最佳答案

如果您只想为 blob 名称定义唯一的动态值,我建议您使用 {rand-guid}。这是document .

@BlobOutput(name = "$return", path = "samples-output-java/files/{rand-guid}")

您将在虚拟目录 files 中获得一个名为 85546257-97f8-43ea-961e-a8bbe70e009d 的 blob。

如果您必须使用文件内容的哈希值,目前不支持在绑定(bind)中执行此操作,您可以在函数内使用 Azure 存储 SDK 来指定您的 blob 名称。

这是相关的 issue github上供大家引用。

关于java - 如何在@BlobOutput中动态定义 'path'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50077386/

相关文章:

Azure CosmosDB 触发器根据另一个集合中的值更新集合

.net - 将 v1 转换为 v2 DotNetStandard 的 Azure 函数 'AzureWebJobsServiceBus' 丢失或为空

Java 数组被覆盖

java - 如何创建这样的日期选择器?

java - Elasticsearch 运行线程过多

azure - Azure 中 Web api 请求的请求超时

azure - 重命名 Azure Active Directory

java - 检查输入类型...如何?

azure - Docker 无法从 Azure 应用服务中提取镜像

c# - Azure Function 用于写入队列 - 我可以设置元数据吗?