Предписанный URL-адрес S3 не работает при больших файлах - PullRequest
0 голосов
/ 07 августа 2020

У меня есть предварительная подпись, которая отлично подходит для любого небольшого файла.

Когда я пытаюсь загрузить файлы большего размера, я получаю ОТКАЗ В ДОСТУПЕ в сообщении без каких-либо других сообщений в теле.

Самое смешное в том, что если я буду продолжать попытки, то после нескольких неудачных попыток это сработает. Это совершенно случайно ...

Когда доступ не запрещен, условие работает, давая правильный возврат ошибки с сообщением, когда размер файла превышает 100 Мб .. но проблема в том, что хорошая часть сообщений получить отказ… *

ОК ФАЙЛ: enter image description here

ACCESS DENIED: введите описание изображения здесь

Вот код:

const S3 = new AWS.S3({
    signatureVersion: 'v4',
    region: region
});


const params = {
    Expires: linkExpiresSecs,
    Bucket: bucketName,
    Conditions: [
        ["content-length-range", 1, 104857600]
    ],
    Fields: {
        key: keyFile
    }
};


const response = await S3.createPresignedPost(params);

1 Ответ

1 голос
/ 07 августа 2020

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...