- Je télécharger des fichiers à S3 avec succès à ma demande. Je fais un téléchargement direct à partir du navigateur à l'aide d'un signedUrl que mon serveur génère pour moi à l'aide de l'aws sdk v3.
Pour obtenir le roussi URL il ressemble un peu à ça
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;
}
};
Cela fonctionne parfaitement bien, mais ensuite, comme je l'ai lu un peu de la documentation, j'ai vu que je devrais être capable de définir l'en-tête ContentDisposition. Dans cette documentation, il est dit que l'entrée de PutObjectCommand s'étend de la PutObjectRequest
Ce dernier est un paramètre facultatif appelé ContentDisposition
comme je tiens à mettre de pièce jointe, pour me permettre de susciter une "fenêtre de téléchargement pour mes utilisateurs. Cependant, lorsque j'utilise le signedURL comme ci-dessus mais d'ajouter la ContentDisposition:'attachment'
terrain j'obtiens une Erreur Forbidden.
Quelqu'un sait-il si je manque quelque chose ici? ce n'est pas une option réelle ou dois-je modifier quelque chose dans ma autorisations de S3 pour cela?