У меня есть функция 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();
}