Estoy tratando de cargar imágenes en blob desde mi aplicación de Android. Mi enfoque actual es cargar imágenes usando azureblobsdk, lo que me permite cargar imágenes directamente en el blob, pero ahora lo que estoy intentando es crear una función azul que acepte datos en flujo o matriz de bytes y los almacene en mi blob.
mientras cargaba la imagen desde mi aplicación, solía enviar algunos metadatos en la cadena a mi aplicación.
var blobClient = containerClient.GetBlobClient(fileName); Dictionary<string, string> metadataProperties = new Dictionary<string, string>(); metadataProperties.Add(key, value); await blobClient.SetMetadataAsync(metadataProperties);esto es lo que estoy haciendo ahora mismo desde la aplicación
ahora estoy intentando hacer lo mismo desde Azure enviando esos parámetros a la función Azure, pero el problema es que no puedo entender cómo enviaría esos flujos y metadatos a la función Azure para poder procesarlos en mi función Azure.
aquí está lo que he hecho hasta ahora, ya que soy nuevo en la función Azure, así que necesito ayuda para seguir adelante con algún enfoque
[FunctionName("UploadProductImages")] public async Task<HttpResponseMessage> UploadProductImages([HttpTrigger(AuthorizationLevel.Function, "post", Route = "product/uploadimages")] HttpRequestMessage req, Microsoft.Extensions.Logging.ILogger log) { }ahora, con esta función implementada, ¿cómo accedo a los datos enviados desde mi aplicación, que sería una lista de imágenes con metadatos? Incluso estoy confundido acerca de qué debo enviar una secuencia o una matriz de bytes.
mi objetivo final es obtener la lista de imágenes con algunos metadatos de esas imágenes y subirlas a blob azure blob storage
Si entiendo el problema correctamente, puedes hacer algo como esto
Cree un Model para sus datos y envíelo así
HttpClient apiClient = new HttpClient(); using (var message = new HttpRequestMessage(HttpMethod.Post, functionAppLink)) { message.Content = new StringContent(JsonConvert.SerializeObject(model),Encoding.UTF8, "application/json"); var response = await apiClient.SendAsync(message); }En el lado de la aplicación de función, simplemente recupere y deserialice
[FunctionName("UploadProductImages")] public async Task<HttpResponseMessage> UploadProductImages([HttpTrigger(AuthorizationLevel.Function, "post", Route = "product/uploadimages")] HttpRequestMessage req, Microsoft.Extensions.Logging.ILogger log) { using var sr = new StreamReader(req.Body); var input = await sr.ReadToEndAsync(); var model = JsonConvert.Deserialize<Model>(input); // Do your thing }