C#

2010-12-14 13 views
6

'u kullanarak Amazon S3'e güçlü bir şekilde yazılan erişim Şu anda bir Windows Azure uygulamasını Amazon AWS'ye taşıyorum. Windows Azure'da Azure Blob Storage'e güçlü bir şekilde yazılan erişim elde etmek için Lokad.Clout'u kullandık. Böyle Örneğin: Daha ayrıntılı örnekler içinC#

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

their wiki görüyoruz.

AWS SDK for .NET'te, güçlü bir şekilde yazılan erişim elde edemezsiniz. Örneğin, yukarıdakileri yapmak için, ListBoject'leri çalıştırmanız ve daha sonra, anahtarın her bir özel özelliğini bulmak için her nesnenin anahtarını ayrıştırmanız gerekir (genellikle birkaç özellikten oluşan anahtarları kullanırız).

Azure için Lokad.Cloud için herhangi bir S3 eşdeğeri var mı?

GÜNCELLEME: Nesnelerin boyutu nedeniyle SimpleDB'yi (Basit Savant ile) kullanamıyoruz.

cevap

0

Azure gelen teşekkür S3

için
3

Bunun için S3'ü kullanmak yerine, Amazon SimpleDB'yi kullanmak istediğinizi düşünüyorum. Verileri anahtar/değer çifti biçiminde depolamanıza ve ayrıca verilerde sorgu çalıştırmanıza olanak tanır.

Ardından, aradığınız şeyi yapmak için, istediğin şeyin Simple Savant olduğunu düşünüyorum.

Basit Savant, C# ile yazılmış Amazon SimpleDB için bir .NET nesne-kalıcılık çerçevesidir.

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); 

Ve böyle nesneleri almak olabilir: Basit Savant ile

, böyle nesneleri kurtarabilir bu yardımcı olur

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

Umut!

+0

Lokad.Cloud söz konusu belirli isim sınıfları taşıma ile kendim çözüldü! Ancak, SimpleDB'yi kullanarak bizim durumumuzda bir seçenek olmadığını açıklığa kavuşturmalıydım. Nesneler SimpleDB'de depolanmak için çok büyük. – Yrlec

1

Bu, S3'ün en iyi duruma getirildiği bir şey değil.

S3'lerinizi S3 depolamanızı 'dizinlemek' için bloğunuzu ve bir veritabanını (SimpleDB, Sql Server vb.) Depolamak için kullanmalısınız. Aradığınızı bulmak için veritabanını kullanın, S3'ten nesneyi alın, değişiklikler yapın ve sonra geri kaydedin.

+0

S3, güçlü yazılan erişim için hangi yolla optimize edilmedi? Bir anahtar, birkaç farklı özelliğin bir toplamı olabilir ve bu özelliklerin anahtarını otomatik olarak oluşturmak, anahtarı el ile oluşturmaktan çok daha elverişlidir. – Yrlec

+0

@Yrlec - belki de tam olarak ne yapmak istediğinizi yanlış anlıyorum, ama kendiniz tanımladığınız gibi, S3 tuşlarının birçoğunu sıralamak sıkıcı ve yavaştır. –