【问题标题】:How to dynamically define 'path' in @BlobOutput?如何在@BlobOutput 中动态定义“路径”?
【发布时间】:2018-04-28 14:06:02
【问题描述】:

我在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。

【问题讨论】:

    标签: java azure azure-functions


    【解决方案1】:

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

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

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

    如果您必须使用文件内容的哈希值,目前不支持在绑定中这样做,您可以在函数内使用 Azure Storage SDK 来指定您的 blob 名称。

    这里有github上相关的issue供大家参考。

    【讨论】:

    • 谢谢,这行得通。有趣的是,我不能从函数内部使用 Azure Storage SDK。尝试连接到存储时进程挂起。我正在与支持人员讨论原因。
    • 你有没有在函数内部使用 Azure Storage SDK 的例子?
    • @anton1980 您收到支持的任何回复了吗?谷歌搜索后找到了一些示例,但不确定您的问题到底是什么。如果您不介意,您可以打开另一个问题,因为在评论中提供详细答案有点困难。
    猜你喜欢
    • 2019-04-04
    • 2021-04-27
    • 2019-07-31
    • 2020-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 2010-10-15
    相关资源
    最近更新 更多