Se avete bisogno solo di sicurezza moderato, il mio approccio sarebbe il seguente:
1) Quando l'utente carica il file , crea un percorso difficile da indovinare. Ad esempio, puoi creare una cartella con un nome generato a caso per ogni file caricato nella tua cartella/static. È possibile farlo abbastanza semplicemente usando questo codice di esempio:
file_path = "/static/" + os.urandom(32).encode('hex') + "/" + file_name
In questo modo sarà molto difficile da indovinare dove file di altri utenti sono memorizzati.
2) Nel database collegare il proprietario al file. Uno schema esempio può essere:
uploads(id, user_id, file_path)
3) utilizzare una proprietà per i vostri FileFields nel modello per limitare l'accesso al file, in questo modo:
class YourModel(models.Model)
_secret_file = models.FileField()
def get_secret_file(self):
# check in db if the user owns the file
if True:
return self._secret_file
elif:
return None # or something meaningful depanding on your app
secret_file = property(get_secret_file)
vi consiglio di seguire [Come fare un file privato, garantendo l'URL che solo gli utenti autenticati possono vedere] (http: //stackoverflow.com/questions/28007770/) ma devi implementare il tuo metodo per impedire ad altri utenti di non accedere ...! –