2013-04-08 13 views
8

Buduję stronę PHP, która będzie przechowywać swoje pliki zawartości na Amazon S3. Pliki witryny (z kodem PHP) są hostowane na tradycyjnym serwerze. Użytkownicy będą rejestrować się na stronie internetowej, a po rejestracji i zalogowaniu będą mieli dostęp do plików na S3.Pozwól, aby tylko zarejestrowani użytkownicy pobierali moje wiadro z Amazon S3

Pytanie brzmi, w jaki sposób pozwolić tylko zalogowanym użytkownikom pobierać pliki i uniemożliwić wszystkim pobieranie? Czy AWS IAM musi być w jakiś sposób zaangażowany?

Nie chcę wygasać adresów URL. Chcę przyznać dostęp do plików tylko konkretnemu użytkownikowi i nie chcę, aby udostępniał on link innym osobom przez dowolny okres.

W przyszłości będę również chciał ograniczyć dostęp do plików dla zarejestrowanych użytkowników - w zależności od typu konta użytkownika użytkownik będzie miał dostęp do różnych plików.

Thx z góry za odpowiedzi!

+4

Nie jest to możliwe w przypadku S3. Najpierw należy pobrać pliki na serwer sieciowy i udostępnić je stamtąd lub utworzyć wygasające adresy URL. – sprain

+2

thx! przynajmniej odpowiedziałeś na coś, zamiast nazywać moje pytanie tak jak inne ** dziury – Val

+1

+1, szukałem również rozwiązania i nie widzę powodu, dla którego pytanie powinno zostać odrzucone. – kiranvj

Odpowiedz

3

Można to zrobić ... Używam ROR zamiast PHP, gdzie moja aplikacja kontroluje dostęp do danych w wiadrze S3. Mam wiadra, do których moja aplikacja ma dostęp, a dostęp do plików jest ograniczony ich danymi uwierzytelniającymi w mojej aplikacji. Ma sens?

Mam wiadro publiczne do przechowywania moich zasobów (publicznie dostępne obrazy) i wiadro, do którego dostęp ma tylko moja aplikacja. Użytkownicy w mojej aplikacji mogą uzyskiwać dostęp tylko do niektórych bitów wiadra na podstawie ich poświadczeń.

Baza danych przechowuje odniesienie do dokładnego pliku/lokalizacji s3, jak uzyskać do niego dostęp (zaszyfrowane dane uwierzytelniające i klucze przekazane podczas transakcji) i kto może uzyskać do niego dostęp.

Przeczytaj informacje na temat udostępniania zasobów internetowych z zasobnika S3 i tworzenia formularza przesyłania do zasobnika S3. Dzięki temu dowiesz się, jak korzystać z wiader S3. Po wejściu w interakcję z zawartością wiadra możesz kontrolować dostęp za pomocą aplikacji internetowej.

Powodzenia!

+0

W jaki sposób przesyłane są dane pliku? Czy przechodzi przez serwer lub bezpośrednio z S3 do użytkownika? Czy to możliwe tylko z ROR? Używam PHP i niestandardowej klasy S3 z Undesigned: http://undesigned.org.za/2007/10/22/amazon-s3-php-class i najprawdopodobniej będę musiał trzymać się podpisanych adresów URL – Val

+1

ty można to zrobić w dowolny sposób ... http: //aws.amazon.com/articles/1434 to bezpośrednia metoda, którą sam implementujesz. Nie znam PHP, ale ROR ma również mnóstwo wtyczek do robienia tego za ciebie (nośnik fali, rails-direct-upload, spinacz papieru, wysyłanie SWF). – twinturbotom