2009-11-10 20 views
7

Pracuję teraz nad aplikacją sieciową za pomocą Railsów i chciałem sprawdzić, czy ktoś wie o dobrym sposobie śledzenia limitów przechowywania plików? Chcemy zapewnić użytkownikom określoną ilość miejsca, w której mogą przesyłać pliki, a do przechowywania w usłudze Amazon S3 używamy spinacza. jakieś pomysły? DziękiJak zapewnić użytkownikom limit miejsca na pliki?

Odpowiedz

7

Jedna z kolumn opcjonalnych można używać z spinacz jest OBJECT_file_size które można podsumować jak

# Assuming a user has many files relationship 
@user.uploads.sum(:image_file_size) 

Co się faktycznie nakładając czapkę, polecam stworzenie walidacji niestandardowej na jakimkolwiek pliku model jest taki, że możesz przekazywać błędy i problemy z powrotem do klienta.

6

Paperclip zapisuje rozmiar pliku.

def used_file_size 
    self.files.sum(:document_file_size) 
end 

Będziesz wtedy całkowity rozmiar dokumentów, każdy użytkownik za:
Więc może po prostu, dla jednego użytkownika, coś zrobić.
Następnie można dodać maksymalny limit rozmiaru i nie sprawdzać poprawności przesyłania dokumentu, jeśli użytkownik osiągnął ten rozmiar.