我正在查看以下代码示例 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/