AWS S3 Длина предварительно подписанного URL-адреса.

Я использую предварительно назначенный URL-адрес AWS S3 для загрузки изображения с клиента (мобильное приложение). Я хочу запретить пользователю загружать большие файлы. Есть ли способ ограничить длину содержимого загружаемого файла?

Спасибо

2 ответа

Решение

Проверьте "content-length-range" в политике s3. http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-HTTPPOSTConstructPolicy.html

Условия в политике POST - это массив объектов, каждый из которых используется для проверки содержимого загруженного объекта. Вы можете использовать эти условия, чтобы ограничить то, что разрешено в запросе. Каждое поле формы, которое вы указываете в форме (кроме имен x-amz-signature, file, policy и field, которые имеют префикс x-ignore-), должно появиться в списке условий.

Content-Length-диапазон
Минимально и максимально допустимый размер загружаемого контента. Это условие поддерживает тип соответствия условий content-length-range.

Я отлично решил эту проблему! Тем не менее, политика POST может работать, но использование предварительно подписанных URL-адресов более удобно.

Я использую nodejs в качестве бэкэнда. И используйте getSignedUrl , чтобы ограничить размер загружаемого файла.

Просто нужно изменить три строки кода aws-sdk. И я пробовал, это может сработать очень хорошо.

Я не знаю, почему aws-sdk nodejs его не поддерживает. Если есть какая-то причина, пожалуйста, поделитесь со мной.

сначала откройте "node_modules/aws-sdk/lib/signers/v4.js", прокомментируйте следующие две строки

во-вторых, откройте «node_modules/aws-sdk/lib/services/s3.js», прокомментируйте следующую строку

в-третьих, напишите код для создания предварительно подписанного URL-адреса и загрузки файла.

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