Azure / Azure/azure-functions-java-worker

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

Abierto
#321 2 comentarios 0 reacciones 1 asignado Reclamado por @shreyas-gopalakrishna Ver en GitHub
area:java-functions needs-investigation reviewed
Lenguaje dominante
Java
Estrellas
103
Forks
74
Merge medio
4 d 8 h
PR fusionados (30 d)
2

Descripción

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.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.