Я пытаюсь точно понять, как настроить корзину, которая обычно является частной, но позволяет анонимную загрузку с ограничениями. Конкретные критерии:
- Ведро в основном приватное и требует моего ключа/секрета для добавления/удаления/обновления/списка файлов.
- Существует «каталог» (, т. е. ключевой префикс ), называемый «входящим», который позволит анонимным пользователям загружать контент, но не список.
- Срок действия корзины составляет один день для всего контента. В качестве бонуса я хотел бы, чтобы «входящий» каталог имел срок действия 30 минут, хотя, если это невозможно, подойдет истечение одного дня для всего ведра.
- Файлы с префиксом «входящие» будут ограничены по размеру для каждого объекта.
- Я мог бы также ограничить объекты с префиксом «входящий» только определенными типами контента.
У меня есть вопросы:
- Было бы лучше просто создать два ведра. Один для моих входящих файлов и один для моей личной обработки и хранения?
- Как бы выглядел код для загрузки файла во входящий каталог. В идеале я хотел бы избежать зависимости от библиотеки S3 и просто использовать вызовы HTTP. Бонусные баллы, если вы можете показать мне правильное направление в Ruby.:)
Срок действия можно установить с помощью консоли управления S3, но он ограничен только 1 днем в качестве наименьшего срока действия. Могу ли я поставить десятичную дробь в этом поле? Похоже, что разрешения применяются ко всему сегменту, а не только к префиксу. Это заставляет меня думать, что мне нужно всего два ведра.Если я останусь с одним сегментом, я думаю, что мне нужно создать политику IAM и применить ее к сегменту, но это выходит за рамки моих ограниченных знаний о S3, и я хочу убедиться, что я не оставляю дыры в разрешениях, которые позволяют людям делать больше, чем я хочу, чтобы они.
Я нашел много документации по анонимным загрузкам на S3 через сообщение формы HTTP. Я мог бы адаптировать это в код, но мне интересно, поскольку я нахожусь в коде приложения (, а не в сообщении HTTP-формы ), есть ли более простой способ?
задан Michal Klouda 27 August 2012 в 20:40
поделиться