Предлагая пользователям загрузки из S3 buckets: я делаю это неправильно?

Наш сайт позволяет пользователям хранить свои личные файлы на нашем сайте, который теперь находится в корзине S3 с тех пор, как мы перешли на AWS. Пользователи могут загружать свои файлы снова, но только после входа на наш веб-сайт. Даже если у них есть прямой URL (/download.php?fileid=1234), пользователи должны войти в систему в первую очередь.

Прямо сейчас у нас есть скрипт загрузки, который извлекает файл из S3 порциями, а затем передает его пользователю. Это работает нормально, и даже позволяет возобновить загрузку, если их браузер поддерживает это. Ни у кого нет жалоб.

Но у меня возникает это неприятное ощущение, что я просто делаю это неправильно, и должен быть какой-то способ, позволяющий пользователям загружать файлы прямо с S3 - но опять же, только если вы зашли на наш сайт.

Я смотрю на предварительно подписанные URL - это то, что мне нужно? Если так, то я думаю, что я должен просто сделать Location: https://bucket.s3... перенаправить, когда пользователь нажимает /download.php?fileid=1234?

Как это будет работать с менеджером загрузок, который поддерживает возобновление? Возобновит ли возобновление работы, потому что они будут идти непосредственно к S3 с ключом с истекшим сроком действия? Возобновление настолько необычно, что обычным людям стоит увеличить скорость, чтобы не заходить сначала через наши серверы...

Как вы справляетесь с безопасными загрузками с S3?

1 ответ

Решение

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

Я использую оба этих подхода для разных ситуаций.

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

И да, если они попытаются получить доступ к подписанному URL-адресу после истечения срока действия, он потерпит неудачу.

Другие вопросы по тегам