2010-12-14 13 views
6

Actualmente estoy migrando una aplicación de Windows Azure a Amazon AWS. En Windows Azure, usamos Lokad.Clout para obtener acceso fuertemente tipado a Azure Blob Storage. Por ejemplo como esto:Acceso fuertemente tipado a Amazon S3 utilizando C#

foreach(var name in storage.List(CustomerBlobName.Prefix(country)) 
{ 
    var customer = storage.GetBlob(name); // strong type, no cast! 
    // do something with 'customer', snipped 
} 

Para ejemplos más detallados ver their wiki.

En AWS SDK para .NET no obtiene un acceso fuertemente tipado. Por ejemplo, para lograr lo anterior, debe ejecutar ListBojects y luego analizar la clave de cada objeto para encontrar cada propiedad individual de la clave (a menudo usamos claves que constan de varias propiedades).

¿Hay algún S3 equivalente a Lokad.Cloud para Azure?

ACTUALIZACIÓN: Debido al tamaño de los objetos no podemos usar SimpleDB (con Simple Savant).

Respuesta

0

lo resolví yo por portar los nombres de clases particulares en Lokad.Cloud de Azure para S3

3

En lugar de utilizar S3 para esto, creo que desea utilizar Amazon SimpleDB. Le permite almacenar datos en formato de pares clave-valor y también ejecutar consultas sobre los datos.

Luego, para hacer lo que está buscando, creo que lo que quiere es Simple Savant.

Simple Savant es un framework .NET de persistencia de objetos para Amazon SimpleDB escrito en C#.

Con Savant simple, puede guardar los objetos de esta manera:

var savant = new SimpleSavant(AwsAccessKeyId, AwsSecretAccessKey); 
var customer = new Customer 
    {Name = "Frank Berry", PhoneNumbers = new List<string> {"770-555-1234", "678-555-5678"} }; 
savant.Put(customer); 

Y se puede recuperar objetos de esta manera:

var frankId = new Guid("50a60862-09a2-450a-8b7d-5d585662990b"); 
Person frank = savant.Get<Person>(frankId); // strong type, no cast! 

Espero que esto ayude!

+0

Gracias! Sin embargo, debería haber aclarado que usar SimpleDB no es una opción en nuestro caso. Los objetos son demasiado grandes para almacenarse en SimpleDB. – Yrlec

1

Esto no es algo para lo que se haya optimizado S3.

Debe usar S3 para almacenar sus blobs y una base de datos (SimpleDB, Sql Server, etc.) para 'indexar' su almacenamiento S3. Use la base de datos para encontrar lo que está buscando, obtenga el objeto de S3, realice cambios y luego guárdelo.

+0

¿De qué manera no se ha optimizado S3 para el acceso fuertemente tipado? Una clave puede ser un agregado de varias propiedades diferentes y la creación automática de la clave a partir de estas propiedades es mucho más conveniente que tener que crear la clave manualmente. – Yrlec

+0

@Yrlec - tal vez estoy malinterpretando exactamente lo que quiere hacer, pero como se describe a sí mismo, enumerar muchas teclas S3 es tedioso y lento. –

Cuestiones relacionadas