2010-07-29 20 views
9

Szukam alternatywy S3, która polega na RESTful API, dzięki czemu mogę po prostu wstawiać łącza, takie jak http://datastore1.example.com/ID i są one bezpośrednio do pobrania. Spojrzałem na RIAK i Bitcache. Oba wydają się bardzo ładne: http://bitcache.org/api/rest, ale mają jeden problem. Chcę być jedynym, który może przesyłać dane. Poza tym każdy może skorzystać z naszego magazynu danych, wysyłając Żądanie PUT.Samodzielna wersja S3 alternatywna

Czy istnieje sposób na skonfigurowanie RIAK, aby każdy mógł "DOSTAĆ", ale nie każdy może ZAZNACZYĆ lub USUWAĆ pliki oprócz mnie? Czy są inne usługi, które możesz polecić?

także dodanie Bounty :)

Wymagania:

  • relaksującego API
  • Goście dostać tylko
  • działa na Debianie

Bardzo miło mieć:

  • auto rozprowadzane

EDIT: Do wyjaśnienia nie chcę żadnego połączenia S3 mam wielkie serwery tylko leżące wokół z dyski twarde i bardzo dobre połączenia sieciowego (3 Gbps) nie potrzebują S3 ..

Odpowiedz

3

Niezawodny, rozproszony magazyn obiektów RADOS, który jest częścią systemu plików ceph, zapewnia S3 gateway.

Użyliśmy systemu magazynowania Eucalyptus, Morsa, ale mieliśmy niezawodnie problemy.

+1

Ze strony głównej Ceph: "Ceph jest intensywnie rozwijany i nie nadaje się jeszcze do żadnych zastosowań innych niż testy porównawcze i przegląd.". Czy mówisz, że jest bardziej stabilny niż Eukaliptus? – Vnuk

+1

COS-y RADOS, Gateway i RBD są gotowe do produkcji. cephFS wciąż brakuje, choć wydaje się, że niektóre konfiguracje są używane w dużych zakładach produkcyjnych. (http://ceph.com/docs/master/faq/#is-ceph-production-quality) – Javier

6

Autorzy Riaka recommend umieszczają proxy HTTP przed Riakiem w celu zapewnienia kontroli dostępu. Możesz wybrać dowolny serwer proxy, który lubisz (np. Nginx lub Apache), i dowolną politykę kontroli dostępu, którą lubisz (np. Autoryzacja oparta na adresach IP, uwierzytelnianie HTTP lub pliki cookie, zakładając, że twój serwer proxy poradzi sobie z tym). Na przykład w Nginx możesz określić limit_except (podobnie LimitExcept w Apache).

Można również dodać kontrolę dostępu bezpośrednio do Riak. Opiera się na Webmachine, więc jednym z podejść byłoby wdrożenie is_authorized.

1

Jeśli szukasz rozproszonego systemu plików, dlaczego nie wypróbujesz hadoop hdfs?

http://hadoop.apache.org/common/docs/r0.17.0/hdfs_design.html

Jest Java API dostępne:

http://hadoop.apache.org/common/docs/r0.20.2/api/org/apache/hadoop/fs/FileSystem.html

Obecnie bezpieczeństwo jest problemem - przynajmniej jeśli masz dostęp do terminala:

http://developer.yahoo.com/hadoop/tutorial/module2.html#perms

Ale możesz wdrożyć hdfs, umieścić serwer aplikacji (używając Java API) w przed nim (GlassFish) i korzystać z Jersey do budowania REST API:

http://jersey.java.net/

Jeśli jesteś zainteresowany w budowaniu takiego, proszę dać mi znać, bo może być coś podobnego budynku dość szybko.

Można użyć Distribution Cloudera Hadoop, aby uczynić życie nieco bardziej proste:

http://www.cloudera.com/hadoop/

Greetz, J.

0

myślę, że należy zadać swoje pytanie na serverfault.com, ponieważ jest bardziej związany z systemem. W każdym razie mogę zasugerować ci mogileFS, który bardzo dobrze się skaluje: http://danga.com/mogilefs/.

0

WebDAV jest mniej więcej tak samo skuteczny, jak to możliwe i istnieje wiele implementacji skalowalnych do różnych zastosowań. W każdym razie, jeśli jest to REST i jest to HTTP, wówczas dowolny schemat uwierzytelniania obsługiwany przez serwer powinien pozwolić ci kontrolować, kto może przesłać.

0

Możesz go sam opracować jako aplikację internetową lub część istniejącej aplikacji. Będzie pobierać żądania HTTP, pobierać ich składnik URI, konwertować go na nazwę obiektu S3 i używać getObject(), aby uzyskać jego zawartość (przy użyciu jednego z dostępnych pakietów SDK S3, na przykład AWS Java SDK).

Możesz wypróbować hostowane rozwiązanie - s3auth.com (Jestem programistą). Jest to projekt typu open source i możesz zobaczyć, jak ten mechanizm jest wewnętrznie implementowany pod adresem one of its core classes. Żądanie HTTP jest przetwarzane przez usługę, a następnie ponownie tłumaczone na wewnętrzny schemat uwierzytelniania Amazon S3.