Azure / Azure/azure-functions-java-worker

RpcHttpRequestDataSource cannot be cast to java.lang.String #255

Open
#321 2 comments 0 reactions 1 assignee Claimed by @shreyas-gopalakrishna View on GitHub
area:java-functions needs-investigation reviewed
Dominant language
Java
Stars
103
Forks
74
Avg merge
4d 8h
Merged PRs (30d)
2

Description

This issue is still reproducible for HttpTrigger.

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>, HttpRequestMessage and Byte[] which is throwing cannot conver to string error as reported in https://github.com/Azure/azure-functions-java-worker/issues/239

@FunctionName("UploadFile")
public HttpResponseMessage run(@HttpTrigger(name = "req", methods = { HttpMethod.GET,
HttpMethod.POST }, authLevel = AuthorizationLevel.FUNCTION) HttpRequestMessage> 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();

}

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

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.