Puedo subir archivos a S3 con éxito con mi aplicación. Tengo que hacer una carga directa desde el navegador utilizando un signedUrl que mi servidor genera para mí con el aws sdk v3.
Para obtener el chamuscado URL se parece un poco a esto
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;
}
};
Esto está funcionando perfectamente bien, pero luego, cuando leí un poco de la documentación vio que yo debería ser capaz de establecer el encabezado ContentDisposition. En esta documentación se dice que la entrada de PutObjectCommand se extiende desde el PutObjectRequest
El último tiene un parámetro opcional llamado ContentDisposition
como me gustaría configurar este apego, que me permita símbolo de una "descarga" de la ventana para mis usuarios. Sin embargo, cuando uso el signedURL como el anterior pero agrega la ContentDisposition:'attachment'
campo puedo obtener una Prohibido Error.
¿Alguien sabe si estoy perdiendo de nada aquí? no es esto una opción real o tengo que modificar algo en mi permisos de S3 para esto?