2013-04-08 2 views
8

Я создаю сайт PHP, который будет хранить свои файлы содержимого на Amazon S3. Файлы веб-сайта (с кодом PHP) размещаются на традиционном сервере. Пользователи регистрируются на веб-сайте, и после регистрации и входа в систему они будут иметь доступ к файлам на S3.Позвольте только зарегистрированным пользователям загрузиться с моего ковша Amazon S3

Вопрос в том, как разрешить только вошедшим пользователям загружать файлы и не разрешать загрузке всех остальных? Следует ли каким-либо образом задействовать AWS IAM?

Я не хочу истекать URL. Я хочу предоставить доступ к файлам только конкретному пользователю, и я не хочу, чтобы они делили связь с кем-либо еще в течение какого-то периода времени.

В будущем я также хочу ограничить доступ к файлам для зарегистрированных пользователей - в зависимости от типа учетной записи пользователя у пользователя будет доступ к различным файлам.

Thx заранее для ответов!

+4

Это невозможно с S3. Вы либо должны сначала загружать файлы на свой веб-сервер, либо обслуживать их оттуда или создавать устаревшие URL-адреса. – sprain

+2

thx! по крайней мере, вы ответили что-то вместо того, чтобы опрокидывать мой вопрос, как и другие дыры – Val

+1

+1, я также искал решение, и я не вижу причины, по которой вопрос должен быть отклонен. – kiranvj

ответ

3

Это можно сделать ... Я использую ROR вместо PHP, где мое приложение контролирует доступ к данным в ведро S3. У меня есть ведра, доступ к которым у моего приложения и доступ к файлам ограничены их учетными данными в моем приложении. Имеют смысл?

У меня есть публичное ведро для хранения моих активов (общедоступных изображений) и ведра, к которым может обратиться только мое приложение. Пользователи моего приложения могут получать доступ только к определенным битам ведра на основе их учетных данных.

В базе данных хранится ссылка на точный файл/местоположение s3, доступ к нему (зашифрованные учетные данные и ключи, переданные во время транзакции), и кто может получить к нему доступ.

Читайте об обслуживании веб-активов из ведра S3 и создании формы загрузки в ведро S3. Это даст вам представление о том, как взаимодействовать с ведрами S3. Как только вы сможете взаимодействовать с содержимым ведра, вы можете контролировать доступ к своему веб-приложению.

Удачи!

+0

Как передаются данные файла? Проходит ли он через ваш сервер или напрямую от S3 к пользователю? Возможно ли это только с ROR? Я использую PHP и пользовательский класс S3 от Undesigned: http://undesigned.org.za/2007/10/22/amazon-s3-php-class, и я, скорее всего, буду придерживаться подписанных URL-адресов – Val

+1

вас может сделать это в любом случае ... http: //aws.amazon.com/articles/1434 - это прямой метод, который вы реализуете самостоятельно. Я не знаю PHP, но у ROR также есть множество плагинов для обработки, которые вам нужны (носитель волны, рельсы-direct-upload, paperclip, swf-upload). – twinturbotom

Смежные вопросы