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

È stato utile?

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.

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