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-адреса и загрузки файла.