Come dare agli utenti un limite di archiviazione di file?
-
19-09-2019 - |
Domanda
Sto lavorando su un'applicazione web in questo momento utilizzando Rails e voleva vedere se qualcuno conosceva un buon modo per tenere traccia dei limiti di archiviazione di file? Vogliamo dare agli utenti una specifica quantità di spazio che possono usare per caricare i file e che stiamo usando graffetta per la memorizzazione su Amazon S3. qualche idea? Grazie
Soluzione
Una delle colonne opzionali è possibile utilizzare con graffetta è l'OBJECT_file_size quale si può riassumere come
# Assuming a user has many files relationship
@user.uploads.sum(:image_file_size)
Per quanto riguarda la realtà imponendo il cappuccio, mi consiglia la creazione di una convalida personalizzata su qualunque modello di file è così che è possibile passare errori e problemi al client.
Altri suggerimenti
Paperclip memorizza la dimensione del file.
Quindi, si può solo, per un utente, fare qualcosa di simile:
def used_file_size
self.files.sum(:document_file_size)
end
Avrai quindi la dimensione totale dei documenti di ogni utente.
È quindi possibile aggiungere un limite di dimensione massima e non convalidare il caricamento del documento se l'utente ha raggiunto quelle dimensioni.