Я запустил пример приложения, которое использует Amazon S3 для хостинга изображений. Мне удалось уговорить его работать. Приложение размещено на github.com. Приложение позволяет создавать пользователей с фотографией профиля. Когда вы загружаете фотографию, веб-приложение хранит ее на Amazon S3 вместо локальной файловой системы. (Очень важно, если вы размещаете в heroku.com)
Однако, когда я сделал "источник просмотра" в браузере страницы, я заметил, что URL-адрес изображения был URL-адресом Amazon S3 в ведро S3, которое я назначил приложению. Я вырезал и вставил URL-адрес и смог просмотреть изображение в том же браузере и в другом браузере, в котором у меня не было открытых сеансов для моего веб-приложения или Amazon S3.
Есть ли способ ограничить доступ к этому URL (и изображению), чтобы он был доступен только для браузеров, которые вошли в мои приложения?
Большая часть информации, которую я нашел о ACL Amazon, говорит только о доступе только для владельца или групп пользователей, прошедших аутентификацию с помощью Amazon или AmazonS3, или для всех анонимно.
EDIT - ОБНОВЛЕНИЕ 7 июля 2010 г.
Amazon имеет только что анонсировал больше способов ограничить доступ к объектам и ведрам S3. Среди других способов теперь вы можете ограничить доступ к объекту S3, присвоив HTTP-рефереру. Это выглядит интересно... Я не могу дождаться, пока они обновят свои документы разработчика.