Carga por lotes de conjuntos enormes de imágenes a Azure Blob Storage

Tengo alrededor de 110,000 imágenes de varios formatos (jpg, png y gif) y tamaños (2-40KB) almacenados localmente en mi disco duro. Necesito subirlos a Azure Blob Storage. Mientras hago esto, necesito configurar algunos metadatos y el ContentType del blob, pero de lo contrario es una carga masiva directa.

Actualmente estoy usando lo siguiente para manejar la carga de una imagen a la vez (en paralelo en 5-10 tareas simultáneas).

static void UploadPhoto(Image pic, string filename, ImageFormat format)
{
    //convert image to bytes
    using(MemoryStream ms = new MemoryStream())
    {
        pic.Save(ms, format);
        ms.Position = 0;

        //create the blob, set metadata and properties
        var blob = container.GetBlobReference(filename);
        blob.Metadata["Filename"] = filename;
        blob.Properties.ContentType = MimeHandler.GetContentType(Path.GetExtension(filename));

        //upload!
        blob.UploadFromStream(ms);
        blob.SetMetadata();
        blob.SetProperties();
    }
}

e preguntaba si había otra técnica que pudiera emplear para manejar la carga, para que sea lo más rápido posible. Este proyecto en particular implica la importación de una gran cantidad de datos de un sistema a otro, y por razones del cliente, debe realizarse lo más rápido posible.

Respuestas a la pregunta(6)

Su respuesta a la pregunta