有两个主要的开源 .net Amazon S3 库。
我目前在我们的 MVC 演示项目中使用 LitS3,但有一些批评。这里有人使用过这两个库吗?这样他们就可以给出客观的观点。
下面是一些使用 LitS3 的示例调用:
在演示 Controller 上:
private S3Service s3 = new S3Service()
{
AccessKeyID = "Thekey",
SecretAccessKey = "testing"
};
public ActionResult Index()
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View("Index",s3.GetAllBuckets());
}
在演示 View 中:
<% foreach (var item in Model)
{ %>
<p>
<%= Html.Encode(item.Name) %>
</p>
<% } %>
编辑1:
由于我必须继续前进,并且没有明确表明哪个库更有效并且保持更新,所以我实现了一个存储库模式,其界面允许我在需要时更改库 future 。下面是我创建的 S3Repository 的一部分,可以让我在需要时更改库:
using LitS3;
namespace S3Helper.Models
{
public class S3Repository : IS3Repository
{
private S3Service _repository;
#region IS3Repository Members
public IQueryable<Bucket> FindAllBuckets()
{
return _repository.GetAllBuckets().AsQueryable();
}
public IQueryable<ListEntry> FindAllObjects(string BucketName)
{
return _repository.ListAllObjects(BucketName).AsQueryable();
}
#endregion
如果您有关于此问题的任何信息,请在评论中告诉我,我会回复并编辑问题。
编辑2: 由于这个问题没有引起注意,我将这两个库集成到我的网络应用程序中以查看设计上的差异,我知道这可能会花费一些时间,但我真的想要一个良好的长期解决方案。下面您将看到两个库执行相同操作的两个示例,也许这会激励你们中的一些人让我知道您的想法。
拥有三个尖锐的库:
public IQueryable<T> FindAllBuckets<T>()
{
List<string> list = new List<string>();
using (BucketListRequest request = new BucketListRequest(null))
using (BucketListResponse response = service.BucketList(request))
{
XmlDocument bucketXml = response.StreamResponseToXmlDocument();
XmlNodeList buckets = bucketXml.SelectNodes("//*[local-name()='Name']");
foreach (XmlNode bucket in buckets)
{
list.Add(bucket.InnerXml);
}
}
return list.Cast<T>().AsQueryable();
}
带有 LITS3 库:
public IQueryable<T> FindAllBuckets<T>()
{
return _repository.GetAllBuckets()
.Cast<T>()
.AsQueryable();
}
最佳答案
看起来官方库现在是“AWS SDK for .NET”,可在此处获取:http://aws.amazon.com/sdkfornet/
看起来它包括:
- 代码示例
- Visual Studio 集成
- .NET 库代码
它支持:
- 亚马逊弹性计算云
- 亚马逊简单存储服务
- 亚马逊虚拟私有(private)云
- Amazon SimpleDB
- Amazon 关系数据库服务
- 亚马逊 CloudFront
- Amazon 简单队列服务
- 亚马逊简单通知服务
- 亚马逊弹性 MapReduce
- 亚马逊 CloudWatch
- 弹性负载平衡
- 自动缩放
关于.net - 哪个 Amazon S3 .NET 库最有用且最高效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1415833/