Я успешно загружаю файлы в S3 с помощью своего приложения. Я выполняю прямую загрузку из браузера, используя подписанный файл, который мой сервер генерирует для меня с помощью aws-sdk v3.
Чтобы получить опаленный URL-адрес, он выглядит примерно так
const s3Params = {
Bucket : bucketName,
Key : fileName,
ContentType:fileType,
// Metadata:{'Content-Disposition':'attachment'}
// ContentDisposition:'attachment'
};
try {
const command = new PutObjectCommand(s3Params);
const url = await getSignedUrl(s3v3,command,{expiresIn:60});
return url;
} catch (e) {
console.log('************** there was an error signing th url');
console.log(e);
throw e;
}
};
Это работает отлично, но затем, когда я прочитал немного документации, я увидел, что должен иметь возможность установить расположение содержимого заголовка. В этой документации говорится, что ввод команды PutObjectCommand начинается с запроса PutObjectRequest
Последний имеет необязательный параметр, называемый ContentDisposition
поскольку я хотел бы установить для этого значение "вложение", чтобы разрешить мне запрашивать окно "загрузка" для моих пользователей. Однако, когда я использую signedURL, как указано выше, но добавляю ContentDisposition:'attachment'
поле я получаю запрещенную ошибку.
Кто - нибудь знает, не пропущу ли я здесь чего-нибудь? это не реальный вариант или мне нужно что-то изменить в своих разрешениях на S3 для этого?