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

时间:2018-04-28 14:06:03

标签: 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。

1 个答案:

答案 0 :(得分:2)

如果您只想为blob名称定义唯一且动态的值,我建议您使用<!DOCTYPE html> <html> <head> <title>Register</title> </head> <body> <form action="#" method="POST"> <h3>Register</h3> Username: <input type="text" name="uname"><br> Password: <input type="password" name="pass"><br> <input type="submit" name="btn"> </form> </body> </html> <?php if (isset($_POST['btn'])) { $username = $_POST['uname']; $password = $_POST['pass']; mysql_connect("localhost","root",""); mysql_select_db("login2"); $query = "INSERT INTO users VALUES ('','$username','$password')"; mysql_query($query); echo "Registered Successfully"; } else { echo "Failed To Register, Try Again"; } ?> 。这是document

ngOnInit() { this.store.appData.subscribe((value: any) => { if(value && value.hdr) { this.appData = value; this.setLocales(); } } ); }

您将在虚拟目录{rand-guid}中获得名为@BlobOutput(name = "$return", path = "samples-output-java/files/{rand-guid}")的blob。

如果必须使用文件内容的哈希值,现在不支持在绑定中执行此操作,则可以在函数内部使用Azure Storage SDK来指定blob名称。

这里有关于github的相关issue供你参考。