Загрузка большого файла из браузера в хранилище blob-объектов azure с помощью функции azure в java
Я пытаюсь загрузить файл в хранилище Azure с помощью Azure полноценно. Мне удалось загрузить обычный текстовый файл, но файлы повреждаются для любого другого типа файлов. Я заметил, что байты, которые я получаю, меньше фактического размера(bodyLength < contentLength).
Я попытался изменить тип данных запроса на
HttpRequestMessage<Optional<byte[]>>
HttpRequestMessage<byte[]> and Byte[]который бросает не может преобразоваться в строковую ошибку как сообщалось в байт[] вход сломан #239[^]
Мое требование-загружать большие файлы в хранилище. Любая помощь может быть оценена по достоинству.
Что я уже пробовал:
@FunctionName("UploadFile") public HttpResponseMessage run(@HttpTrigger(name = "req", methods = { HttpMethod.GET, HttpMethod.POST }, authLevel = AuthorizationLevel.FUNCTION) HttpRequestMessage<Optional<String>> request, final ExecutionContext context) throws InvalidKeyException, URISyntaxException, StorageException, IOException { CloudStorageAccount storageAccount = CloudStorageAccount.parse(_storageConnString); CloudBlobClient blobClient = storageAccount.createCloudBlobClient(); CloudBlobContainer blobContainer = blobClient.getContainerReference(_containerName); CloudBlockBlob blob = blobContainer.getBlockBlobReference(fileName); try { String body = request.getBody().get(); long bodyLength = body.length(); String contentLength = request.getHeaders().get("content-length"); InputStream inputStream = new ByteArrayInputStream(body.getBytes()); blob.upload(inputStream, Integer.parseInt(bodyLength)); } catch (Exception ex) { return request.createResponseBuilder(HttpStatus.BAD_REQUEST).body(ex.getMessage()).build(); } return request.createResponseBuilder(HttpStatus.OK).body("File uploaded successfully").build(); }