Domanda

Il nostro sito consente agli utenti di archiviare i propri file privati ​​sul nostro sito, che ora si trova in un bucket S3 da quando ci siamo trasferiti su AWS.Gli utenti possono scaricare nuovamente i propri file, ma solo dopo aver effettuato l'accesso al nostro sito web.Anche se hanno l'URL diretto (/download.php?fileid=1234), gli utenti devono prima aver effettuato l'accesso.

In questo momento abbiamo uno script di download che estrae il file da S3 in blocchi e poi lo passa all'utente.Funziona bene e consente anche la ripresa del download se il browser lo supporta.Nessuno ha alcuna lamentela.

Ma ho questa fastidiosa sensazione di essere semplicemente farlo male, e deve esserci un modo per consentire agli utenti di scaricare direttamente da S3, ma ancora una volta, solo se hanno effettuato l'accesso al nostro sito.

Ho guardato URL prefirmati - è questo ciò di cui ho bisogno?Se è così, allora immagino che dovrei semplicemente fare a Location: https://bucket.s3... reindirizzare quando l'utente preme /download.php?fileid=1234?

Come funzionerebbe con un gestore di download che supporta la ripresa?Il ripristino smetterebbe di funzionare perché andrebbero direttamente a S3 con una chiave scaduta?La ripresa è così rara che potrebbe valere la pena aumentare la velocità per le persone normali per non dover prima passare attraverso i nostri server...

Come gestite i vostri download sicuri da S3?

È stato utile?

Soluzione

Entrambe le soluzioni proposte vanno bene.Dipende solo da fattori come se desideri che tutti i dati arrivino attraverso il tuo server (che devi quindi ridimensionare) o se va bene che il collegamento scada dopo il limite di tempo impostato.

Utilizzo entrambi questi approcci per situazioni diverse.

Raramente consiglio di reimplementare una soluzione che funziona senza circostanze attenuanti (esigenze di ridimensionamento previste, problemi di sicurezza, ecc.).

E sì, se tentano di accedere a un URL firmato dopo la scadenza, l'operazione fallirà.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top