Чтение объекта FormData в Java HTTP Triggered Azure Функции - PullRequest
0 голосов
/ 20 марта 2020

Недавно я создал функцию HTTP Triggered Java Azure для обработки некоторых моих внутренних задач. Эта основная цель Azure -Функций состояла в том, чтобы принимать / считывать файлы изображений, помещенные в объект javascript FormData, и загружать файлы в мое хранилище BLOB-объектов azure.

Я искал в Интернете, но не смог найти рабочий пример того, как читать файл из объекта FormData в java? Я видел несколько примеров того, как это делается с azure функциями в C# и node.js.

Вот ссылка -> Azure функции - Как читать данные формы

Так что должен быть способ сделать это в Java, делает кто-нибудь есть или кто-нибудь может привести рабочий пример?

public class Function {
     @FunctionName("HttpTrigger-Java")
     public HttpResponseMessage run(@HttpTrigger(name = "req", methods = 
  {HttpMethod.POST}) HttpRequestMessage<Optional<String>> request,
         final ExecutionContext context) {            

        String postRequest = request.getBody();

         //HELP: I need to get the FormData object from the postRequest some how... 
        FormData formDataObj = postRequest.getFormData();

        //HELP: Then I need to get my image file from the FormData Object...
        File sourceFile = formDataObj.getImageFile(); 


        try {
            // Parse the connection string 
            storageAccount = CloudStorageAccount.parse(storageConnectionString);

            // get blob client 
            blobClient = storageAccount.createCloudBlobClient();

            // get container name 
            container = blobClient.getContainerReference(containerName);    

            //Getting a blob reference
            blob = container.getBlockBlobReference(sourceFile.getName());

            //Creating blob and uploading file to it                
            blob.uploadFromFile(sourceFile.getAbsolutePath());

        } catch (StorageException ex) {
            return request.createResponseBuilder(HttpStatus.BAD_REQUEST).body("There was an error with Storage Account.").build();
        }

        return request.createResponseBuilder(HttpStatus.OK).body("Images Uploaded Successfully!, ").build();

}

}

1 Ответ

0 голосов
/ 23 марта 2020

Я полагаю, что вы можете проанализировать тело, используя Apache Commons FileUpload и сделать это из строки, этот ответ показывает способ сделать это.

...