Es gibt zwei Open-Source-.NET-Amazon S3-Bibliotheken.Welche Amazon S3 .NET-Bibliothek ist am nützlichsten und effizientesten?
ich derzeit LitS3 in unserem MVC Demo-Projekt verwenden, aber es gibt einige Kritik darüber. Hat jemand hier beide Bibliotheken benutzt, so dass sie eine objektive Sichtweise geben können.
Im Folgenden einige Beispiel Anrufe mit LitS3:
Auf Demo-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());
}
Auf Demoansicht:
<% foreach (var item in Model)
{ %>
<p>
<%= Html.Encode(item.Name) %>
</p>
<% } %>
EDIT 1:
Da ich zu halten haben bewegt und es gibt keinen klaren Hinweis darauf, welche Bibliothek effektiver und aktueller ist, habe ich Implementiert ein Repository-Muster mit einer Schnittstelle, die es mir erlaubt, die Bibliothek zu ändern, wenn ich in der Zukunft brauche. Unten ist ein Abschnitt der S3Repository die ich geschaffen habe und ich Bibliotheken im Fall ändern lassen muß ich:
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
Wenn haben Sie irgendwelche Informationen über diese Frage mich in einem Kommentar bitte wissen lassen, und ich werde kommen zurück und editiere die Frage.
EDIT 2: Da diese Frage Aufmerksamkeit ist nicht immer, integrierte ich beiden Bibliotheken in meinem Web-App, die Unterschiede in Design, um zu sehen, weiß ich, das ist wahrscheinlich eine Taille der Zeit, aber ich mag wirklich ein guten lang Lösung ausführen. Unten sehen Sie zwei Beispiele der gleichen Aktion mit den beiden Bibliotheken, vielleicht wird dies einige von Ihnen dazu motivieren, mir Ihre Gedanken mitzuteilen.
MIT DREI SHARP BIBLIOTHEK:
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();
}
MIT LITS3 BIBLIOTHEK:
public IQueryable<T> FindAllBuckets<T>()
{
return _repository.GetAllBuckets()
.Cast<T>()
.AsQueryable();
}
Warum gehst du nicht wie LitS3? Ich verwende ThreeSharp ohne Probleme. –
Ich habe keine Beschwerden über LitS3. Ich möchte nur sicherstellen, dass ich volle S3-API-Kontrolle haben kann und dass es effizient ist. Vielen Dank für Ihren Kommentar. – Geo
Ich habe LitS3 nicht benutzt, aber ich habe ThreeSharp stark benutzt und ich dachte, es sei gut designed. – skalb