none
Como subir archivos a un blob Storage de Azure directamente desde una aplicación WP8? RRS feed

  • Pregunta

  • Buenas,

    No encuentro la forma de subir un archivo a un blob storage desde una aplicación WP8.

    He encontrado ejemplos para Windows Phone 7 y para Windows 8 App Store pero nada para Windows Phone 8.

    En mi aplicación he tratado de utilizar Microsoft.WindowsAzure.StorageClient.dll que es una dll que se incluye al instalar el paquete WindowsAzureStorage.Helper.1.0 con Nuget, con el código que pongo a continuación:

           public async Task InsertDataInBlob(string resourceName, string containerName, string url, byte[] data, CancellationToken cancel)
            {
                    var task = Task.Factory.StartNew(() =>
                    {
    
                        StorageCredentials cred = new StorageCredentialsAccountAndKey("CuentaDeAlamacenamiento", "ClaveDeAcceso");
                        var resourceUri = new Uri(url);
    
                        // Instantiate a Blob store container based on the info in the returned item.
                        CloudBlobContainer container = new CloudBlobContainer(
                            string.Format("https://{0}/{1}",
                                resourceUri.Host, containerName), cred);
    
    
                        // Upload the new image as a BLOB from the stream.
                        CloudBlockBlob blobFromSASCredential =
                            container.GetBlockBlobReference(resourceName);
                        //await blobFromSASCredential.UploadByteArray(data);
                        blobFromSASCredential.UploadByteArray(data);
                        //}
                    }, cancel);
    
            }

    Sin embargo al ejecutarse la instrucción que hace el new CloudBlobContainer obtengo esta excepción: An exception of type 'System.IO.FileNotFoundException' occurred in Unknown Module. but was not handled in user code

    La url y los datos que utilizo los he validado y son correctos. Por la excepción intuyo que el método requiere acceso a disco para llevar acabo la operación (no se muy bien para qué). Y al ser una librería .NET que es para aplicaciones web la que estoy utilizando, se lanza la excepción al intentar acceder al sistema de archivos de WP8 que se basa en IsolatedStorage.

    Alguien sabe como subir archivos a un blob Storage de Azure directamente desde una aplicación WP8?

    Un saludo!


    Sergio Navarro

    martes, 30 de abril de 2013 21:00

Respuestas

  • Bueno, al final he solucionado el problema rodeándolo ;) en lugar de subir directamente la imagen al BlobStorage, he utilizado mobileservices para subir la imagen a azure, y en el script de inserción aprovecho para crear el blob con los bytes de imagen que se me pasan. A continuación elimino el campo con los bytes de la imagen para que no pasen a la base de datos.

    Dejo la pregunta abierta de todas formas por si alguien sabe como poder hacer esto conectando el cliente directamente con los mobileservices.

    Un saludo!


    Sergio Navarro


    martes, 30 de abril de 2013 22:55