Как динамически определить «путь» в @BlobOutput? - PullRequest
0 голосов
/ 28 апреля 2018

Я смотрю на следующий пример кода на 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 создает уникальные идентификаторы для файлов.

1 Ответ

0 голосов
/ 30 апреля 2018

Если вы просто хотите определить уникальное и динамическое значение для имени BLOB-объекта, я рекомендую вам использовать {rand-guid}. Вот документ .

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

В виртуальном каталоге files вы получите большой двоичный объект с именем, например 85546257-97f8-43ea-961e-a8bbe70e009d.

Если вам нужно использовать хеш-значение содержимого файла, поскольку пока это не поддерживается в привязках, вы можете использовать Azure Storage SDK внутри функции, чтобы указать имя вашего большого двоичного объекта.

Вот соответствующая проблема на github для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...