Click here to Skip to main content
15,848,157 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I'm trying to upload a file to azure storage through azure fucntion. I was successful in uploading plain text file but the files are getting corrupted for any other type of files. What I observed is that the bytes that I'm receiving are lesser than the actual size(bodyLength < contentLength).

I tried to change the request data type to
HttpRequestMessage<byte[]> and Byte[] 
which is throwing cannot conver to string error as reported in byte[] input broken #239[^]

My requirement is to upload large files to storage. Any help can be appreciated.

What I have tried:

    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();


This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900