Строго типизированный доступ к Amazon S3 с использованием C # - PullRequest
6 голосов
/ 15 декабря 2010

В настоящее время я выполняю миграцию приложения Windows Azure на Amazon AWS.В Windows Azure мы использовали Lokad.Clout , чтобы получить строго типизированный доступ к хранилищу BLOB-объектов Azure.Например, вот так:

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

Более подробные примеры см. В их вики .

В AWS SDK для .NET вы не получаете строго типизированный доступ.Например, чтобы достичь вышеизложенного, вы должны выполнить ListBojects и затем проанализировать ключ каждого объекта, чтобы найти каждое отдельное свойство ключа (мы часто используем ключи, состоящие из нескольких свойств).

IsЕсть ли S3-эквивалент Lokad.Cloud для Azure?

ОБНОВЛЕНИЕ: Из-за размера объектов мы не можем использовать SimpleDB (с Simple Savant).

Ответы [ 3 ]

3 голосов
/ 15 декабря 2010

Вместо того, чтобы использовать S3 для этого, я думаю, что вы хотите использовать Amazon SimpleDB. Это позволяет хранить данные в формате пары ключ-значение, а также выполнять запросы к данным.

Затем, чтобы сделать то, что вы ищете, я думаю, что вы хотите Простой Savant .

Simple Savant - это инфраструктура сохранения объектов .NET для Amazon SimpleDB, написанная на C #.

С помощью Simple Savant вы можете сохранять такие объекты:

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

И вы можете получать объекты, как это:

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

Надеюсь, это поможет!

1 голос
/ 15 декабря 2010

Это не то, что было оптимизировано для S3.

Вы должны использовать S3 для хранения ваших больших двоичных объектов и базы данных (SimpleDB, Sql Server и т. Д.) Для «индексации» вашего хранилища S3. Используйте базу данных, чтобы найти то, что вы ищете, получить объект от S3, внести изменения и сохранить его обратно.

0 голосов
/ 02 января 2011

Я решил это сам, перенеся эти конкретные классы имен в Lokad.Cloud из Azure в S3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...