c# - 使用 C# 对 Amazon S3 进行强类型访问

标签 c# azure amazon-s3 amazon-web-services blob

我目前正在将 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/

相关文章:

asp.net - OpenIdConnect 错误 - 租户标识符可能不是空的 GUID

python - 如何在另一个 AWS 区域使用不同的 AWS 终端节点?

amazon-s3 - 从 Glacier 迁移到 S3 Glacier Deep Archive

c# - 结果与空 LINQ 查询的联合

c# - Azure 上对站点的 SSL HttpWebRequest 证书不匹配?

c# - 访问方法 'System.Web.Http.HttpConfiguration.DefaultFormatters()' 失败

azure - 转移资源时保留RBAC权限

c# - 如何在 ASP.NET MVC 上将 Content-Type 设置为 "text/plain"?

azure - ASP.NET 5 RC1-Final 中不存在 UseWindowsAzureActiveDirectoryBearerAuthentication

amazon-s3 - 我需要从 Amazon S3 下载大文件的多部分下载