La soluzione corretta al 100%, ovviamente, non sarebbe quella di rendere i file leggibili e scrivibili. È fuori controllo qui, ma non è strettamente necessario.
Il server è configurato in modo simile a come incoming
le cartelle sono stati creati sul server FTP per 30-40 anni: è possibile cd
in quella directory e creare / scrivere file, e leggere tutti i file che è possibile aprire, ma non è possibile elencare il contenuto della directory (e facoltativamente, è possibile creare e scrivere qualsiasi file, ma non sovrascriverne uno esistente).
Supponendo che i nomi dei file non possano essere indovinati, questo è sicuro nella misura in cui non si può fare molto senza conoscere il nome di un file. Un UUID ha 128 bit, ma è possibile utilizzare qualsiasi altro nome di file casuale della stessa dimensione o maggiore (o un nome casuale a 160 bit, se si pensa che 128 bit non siano sufficienti).
Mentre è in teoria possibile indovinare un numero casuale a 128 bit (e c'è anche la possibilità che due nomi di file si scontreranno per caso), le possibilità di una cosa del genere accada è astronimically piccolo dato il tempo necessario per accedere a un file attraverso la rete (che limita strongmente il numero di operazioni al secondo che puoi fare). Questo è molto diverso da ad es. qualcuno che impone un hash da un database di password rubato, in cui l'hacker in genere prova centinaia di milioni di hash al secondo.
Probabilmente avrai più probabilità di morire per essere stato colpito da una meteora piuttosto che vederlo nella tua vita.
Inoltre, un rapido Google dice che S3 supporta le cartelle, quindi se sei in modalità ultra-paranoia, puoi creare una cartella con un nome UUID e inserire lì i file con nome UUID. Qualcuno dovrebbe indovinare correttamente un numero a 256 bit per accedere a un file, puoi essere abbastanza sicuro che questo non accadrà durante la tua vita.