.net - 哪个 Amazon S3 .NET 库最有用且最高效?

标签 .net asp.net-mvc amazon-s3

有两个主要的开源 .net Amazon S3 库。

  1. Three Sharp
  2. LitS3

我目前在我们的 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/

相关文章:

.net - 在 .NET 中捕获 SQL 唯一键异常

c# - 使用 mongoDB C# 驱动程序,如何发出 runCommand?

c# - 如何确定 Facebook 用户是否登录到 Facebook 从 C# 连接

javascript - 如何使用我的 Service Worker 处理由 AWS s3 产生的非 CORS 污染的浏览器缓存?

c# - 将 SAFEARRAY 从 C# 传递到 COM

.net - Entity Framework - 第一次查询很慢

asp.net-mvc - 数据层或域层的规则验证?

c# - 将 session 变量转换为 html

amazon-s3 - Amazon S3 错误 - 当前正在针对此资源执行冲突的条件操作。

amazon-web-services - AWS 安全组和 IAM 角色