Io caricare i file su S3 con successo con la mia domanda. Faccio un upload diretto dal browser utilizzando un signedUrl che il mio server genera per me usando il aws-sdk v3.
Per ottenere il cantato URL sembra un po ' come questo
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;
}
};
Questo funziona alla perfezione, ma poi, come ho letto un po ' di documentazione ho visto che dovrei essere in grado di impostare l'intestazione ContentDisposition. In questa documentazione si dice che l'ingresso di PutObjectCommand si estende dal PutObjectRequest
Quest'ultimo è un parametro opzionale chiamato ContentDisposition
come vorrei impostare questo allegato, per consentire a me di aprire un finestra "download" per i miei utenti. Tuttavia, quando uso la signedURL come sopra, ma aggiungere il ContentDisposition:'attachment'
campo ottengo un Errore Forbidden.
Qualcuno sa se im manca qualcosa qui? non è questa una reale opzione o devo modificare qualcosa nel mio autorizzazioni di S3 per questo?