Azure / Azure/azure-functions-java-worker

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

Ouverte
#321 2 commentaires 0 réactions 1 personne assignée Réclamée par @shreyas-gopalakrishna Voir sur GitHub
area:java-functions needs-investigation reviewed
Langage dominant
Java
Étoiles
103
Forks
74
Merge moyen
4 j 8 h
PR mergées (30 j)
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.

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.