我目前正在将 Windows Azure 应用程序迁移到 Amazon AWS。在 Windows Azure 中,我们使用 Lokad.Clout获得对 Azure Blob 存储的强类型访问。例如这样的:
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 .
在适用于 .NET 的 AWS 开发工具包中,您无法获得强类型访问权限。例如,为了实现上述目标,您必须执行 ListBojects,然后解析每个对象的键,以便找到键的每个单独属性(我们经常使用由多个属性组成的键)。
是否有与适用于 Azure 的 Lokad.Cloud 等效的 S3?
更新:由于对象的大小,我们无法使用 SimpleDB(与 Simple Savant)。
最佳答案
我认为您不想使用 S3,而是想使用 Amazon SimpleDB。它允许您以键值对格式存储数据,并对数据运行查询。
然后,要做你正在寻找的事情,我想你想要的是 Simple Savant .
Simple Savant 是一个用 C# 编写的 Amazon SimpleDB .NET 对象持久框架。
使用 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!
希望这有帮助!
关于c# - 使用 C# 对 Amazon S3 进行强类型访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4444813/