Czy ktoś natknął się na prawie 100% system przechowywania obiektów zgodny z Amazon S3 RESTful API?
To, czego szukam, to warstwa, która znajduje się na dowolnym systemie plików (najlepiej POSIX), który zapewnia interfejs API RESTful w stylu Amazon S3 do przechowywania ( PUT
), retrieve ( GET
), stat ( HEAD
) i delete ( DELETE
) z przyzwoitym uwierzytelnieniem.
Mile widziane są także projekty / pomysły komercyjne.
UWAGA:
Do tej pory próbowałem Eukaliptusa i Cumulusa ; z których Eukaliptus wydaje się ślepo nazywać siebie kompatybilnym z S3. Dokumenty XML odpowiedzi w ogóle nie są kompatybilne i są niejednolite w niektórych miejscach bez dokumentów XML. Cumulusowi udało się utrzymać dość podobne dokumenty odpowiedzi, ale wydaje się, że zapomniał o integralności danych!
Pozwól, że wyjaśnię tę drugą część: zarówno Eucalyptus, jak i Cumulus nie obsługują weryfikacji integralności oferowanej przez Amazon S3. To, co możesz zrobić z S3, to dostarczenie Base64 (MD5 (PLIK)) wraz z żądaniem PUT, które następnie zostanie zweryfikowane przez S3, zanim odpowie pomyślnie. Eukaliptus i Cumulus tego nie obsługują. Dzięki Eucalyptus możemy przynajmniej obejść ten problem, sprawdzając MD5 podany w dokumencie odpowiedzi (zachowanie niezgodne z S3). W Cumulusie nie jest to możliwe, ponieważ nie reaguje na nic (jak S3). Sytuację pogarsza jeszcze Cumulus, nie podając ETagu we HEAD
wniosku.
źródło
Stare / odpowiedzi na pytanie, ale https://github.com/basho/riak_cs zostało właśnie otwarte na https://github.com/basho/riak_cs : „Riak CS to system przechowywania obiektów zbudowany na Riak. Ułatwia przechowujący duże obiekty w Riak i prezentujący interfejs kompatybilny z S3. Zapewnia również funkcje mutantancji, takie jak konta użytkowników, uwierzytelnianie, mechanizmy kontroli dostępu i raportowanie użycia według kont. ”
źródło
Jestem pewien, że masz tak wiele opcji powyżej, ale powinieneś sprawdzić OpenStack Swift, to OpenSource Object Storage, a także obsługuje API kompatybilne z S3. Jest używany jako rozwiązanie do przechowywania obiektów dla Rackspace, Hpcloud Korea Telecom i wielu innych.
Dokumentacja http://docs.openstack.org/developer/swift/associated_projects.html Swift3 https://github.com/fujita/swift3 Swift3 Middleware dla OpenStack Swift, umożliwiający dostęp do OpenStack swift poprzez interfejs API Amazon S3.
Mam nadzieję, że to pomoże.
źródło
[OŚWIADCZENIE: Pracuję dla Cloudian]
Oprogramowanie do przechowywania obiektów Cloudian HyperStore jest w 100% kompatybilne z interfejsem API Amazon S3. Implementuje wszystkie interfejsy API S3, aż do kodów błędów i wszystkich funkcji, które ma Amazon S3.
Aby wymienić niektóre, Cloudian HyperStore obsługuje przesyłanie wieloczęściowe, wersjonowanie obiektów, ACL kompatybilny z S3, automatyczne warstwowanie do S3 i Glacier, udostępnianie zasobów między różnymi źródłami S3 (CORS), typ kodowania S3, ograniczenie lokalizacji i wiele innych.
Tak, dzięki Cloudian możesz dostarczyć Base64 (MD5 (FILE)) wraz z żądaniem PUT, które następnie zostaną zweryfikowane przed odpowiedzią z powodzeniem.
Aby uzyskać więcej informacji, sprawdź ten post na blogu http://www.cloudian.com/blog/?p=64 i stronę internetową Cloudian pod adresem http://www.cloudian.com/products/cloudian-hyperstore.php
źródło
Sprawdziłeś s3fs ? Nie ma w nim czeku MD5, który chcesz ( http://code.google.com/p/s3fs/issues/detail?id=37&q=md5 ), ale przypuszczam, że wdrożenie tego nie byłoby trudne. Warto zauważyć, że ostatecznie jest spójny.
źródło