Istnieją dwie główne biblioteki. S3 Amazon S3.Co jest najbardziej przydatne i wydajne w bibliotece Amazon S3 .NET?
Obecnie używam LitS3 w naszym projekcie demo MVC, ale jest jakaś krytyka o nim. Czy ktoś tutaj użył obu bibliotek, aby móc podać obiektywny punkt widzenia.
Poniżej kilka połączeń próbnych z wykorzystaniem LitS3:
Na kontrolerze demo:
private S3Service s3 = new S3Service()
{
AccessKeyID = "Thekey",
SecretAccessKey = "testing"
};
public ActionResult Index()
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View("Index",s3.GetAllBuckets());
}
Na widok demo:
<% foreach (var item in Model)
{ %>
<p>
<%= Html.Encode(item.Name) %>
</p>
<% } %>
EDIT 1:
Ponieważ muszę ruszać i nie ma jasnego wskazania, która biblioteka jest bardziej skuteczna i bardziej aktualna zaimplementowałem wzorzec repozytorium z interfejsem, który pozwoli mi zmienić bibliotekę, jeśli będę potrzebował w przyszłości. Poniżej znajduje się sekcja S3Repository że zostały utworzone i pozwoli mi zmienić bibliotek w przypadku muszę:
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
Jeśli masz jakiekolwiek informacje na temat tego pytania proszę dać mi znać w komentarzu, a ja dostanę wróć i edytuj pytanie.
EDIT 2: Ponieważ kwestia ta nie jest coraz uwagę, że zintegrowane obu bibliotek w mojej aplikacji internetowej, aby zobaczyć różnice w projektowaniu, wiem, że jest to prawdopodobnie strata czasu, ale naprawdę chcę to dobry długi uruchom rozwiązanie. Poniżej zobaczysz dwie próbki tego samego działania z dwiema bibliotekami, może to zmotywuje niektórych z was, aby poinformowali mnie o swoich myślach.
z trzema SHARP Biblioteka:
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();
}
Z LITS3 Biblioteka:
public IQueryable<T> FindAllBuckets<T>()
{
return _repository.GetAllBuckets()
.Cast<T>()
.AsQueryable();
}
Dlaczego nie lubisz LitS3? Używam ThreeSharp bez żadnych problemów. –
Nie mam żadnych skarg na LitS3. Chcę tylko upewnić się, że będę mógł mieć pełną kontrolę nad S3 API i że będzie to skuteczne. Dzięki za komentarz. – Geo
Nie użyłem LitS3, ale użyłem mocno ThreeSharp i pomyślałem, że jest dobrze zaprojektowany. – skalb