Функция Azure в Java: запись нескольких файлов в хранилище BLOB-объектов с использованием привязки - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть функция Azure, написанная на Java, которая разбивает большие CSV на более мелкие.

Можно использовать привязку вывода к папке в хранилище BLOB-объектов Azure, поэтому функция можно создать несколько файлов там?

    @FunctionName("split")
    public HttpResponseMessage split(
            @BlobInput(name = "file", dataType = "string", path = "usersdata/users.csv", connection = "AzureWebJobsStorage")
                    String content,
            @HttpTrigger(name = "req",
                    methods = {HttpMethod.GET, HttpMethod.POST},
                    authLevel = AuthorizationLevel.ANONYMOUS)
                    HttpRequestMessage<Optional<String>> request,
            ExecutionContext context) {

        AtomicInteger chunkCounter = new AtomicInteger(0);

        try {
                //Splitting code skipped here, works fine

                try (PrintWriter out = new PrintWriter("usersdata/users-" + chunkCounter.getAndIncrement() + ".csv")) {
                    out.println(String.join("\n", chunk));
                } catch (Exception e) {

                    //***
                    //ERROR IS HERE: Error saving file: usersdata/users-0.csv (No such file or directory)
                    //***

                    context.getLogger().log(Level.SEVERE,"Error saving file: " + e.getMessage());
                }
            }
        } catch (IOException e) {
            context.getLogger().warning("CSV I/O error: " + e.getMessage());
        }

        return request.createResponseBuilder(HttpStatus.OK).body(chunkCounter.get()).build();

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