Existen dos bibliotecas principales de .NET Amazon S3 de código abierto.¿Qué biblioteca de Amazon S3 .NET es más útil y eficiente?
Actualmente estoy usando LitS3 en nuestro proyecto de demostración MVC, pero hay algunas críticas al respecto. ¿Alguien ha usado ambas bibliotecas para que puedan dar un punto de vista objetivo?
A continuación algunas llamadas de muestra usando LitS3:
El controlador de demostración:
private S3Service s3 = new S3Service()
{
AccessKeyID = "Thekey",
SecretAccessKey = "testing"
};
public ActionResult Index()
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View("Index",s3.GetAllBuckets());
}
En vista de demostración:
<% foreach (var item in Model)
{ %>
<p>
<%= Html.Encode(item.Name) %>
</p>
<% } %>
EDIT 1:
Desde que tienen que mantenerse en movimiento y no hay una indicación clara de qué biblioteca es más efectiva y se mantiene más actualizada, tengo implementé un patrón de repositorio con una interfaz que me permitirá cambiar la biblioteca si es necesario en el futuro. A continuación se muestra una sección de la S3Repository que he creado y me deja cambiar las bibliotecas en caso de que necesite:
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
Si usted tiene alguna información acerca de esta pregunta por favor hágamelo saber en un comentario, y conseguiré retrocede y edita la pregunta.
EDIT 2: Dado que esta cuestión no es llamar la atención, que integra las dos bibliotecas en mi aplicación web para ver las diferencias en el diseño, sé que esto es probablemente una pérdida de tiempo, pero realmente quiero un buen tiempo ejecutar la solución. A continuación, verá dos muestras de la misma acción con las dos bibliotecas, tal vez esto motive a algunos de ustedes a dejarme saber sus pensamientos.
con tres BIBLIOTECA SHARP:
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();
}
CON LITS3 BIBLIOTECA:
public IQueryable<T> FindAllBuckets<T>()
{
return _repository.GetAllBuckets()
.Cast<T>()
.AsQueryable();
}
¿Por qué no te gusta LitS3? Estoy usando ThreeSharp sin ningún problema. –
No me quejo de LitS3. Solo quiero asegurarme de que pueda tener un control API S3 completo y que sea eficiente. Gracias por tu comentario. – Geo
No he usado LitS3 pero utilicé ThreeSharp y pensé que estaba bien diseñado. – skalb