Users workspace

Ciao a tutti.
may you help me, please ?

Vorrei implementare uno spazio di archiviazione dedicato per ogni utente
registrato sulla mia app.
Uno spazio nel quale poter salvare e recuperare files.

In piccolo come google drive.

I documenti da gestire sono immagini e pdf in sola consultazione.
Vorrei inoltre gestire file xml, da importare ed esportare su mysql.

Tutto quanto vorrei potesse essere gestibile dall’utente con creazione
di directory, archiviazione di files, upload ecc …

Inizialmente avevo pensato alla creazione di utenti di sistema con tanto
di home e diritti, ma gestire molti utenti diventerebbe troppo pesante.

Ho cercato una gemma, ma non so bene neppure cosa cercare.

Non ho idea di quanti utenti dovrei gestire.

… eh, lo so. Ho poche idee, ma confuse.

Ogni suggerimento è apprezzato … e grazie 1000.

fellons

Il numero di utenti non un problema. Inizia a pensare dove vuoi
salvare questi file.
Se vuoi salvare i file sul cloud devi usare una gem appropriata, tipo
AWS-SDK se vuoi usare S3.
Se vuoi salvare i file su filesystem sufficiente una gem tipo
Paperclip, che quella con cui ho pi esperienza.
Per la gestione degli utenti puoi usare Devise.
Questa la strada pi semplice che mi viene in mente per arrivare a
quello che vuoi fare.

A titolo didattico per potrebbe essere stra-utile provare ad
implementare tutto senza usare gem, che possibile, magari ottieni
meno funzionalit ma capisci meglio quello che succede dietro le
quinte.

P.S. Se continuate a dire ‘gemma’ io comincio a dire ‘rubino’ :stuck_out_tongue_winking_eye:

2015-04-01 8:25 GMT+02:00 Roberto F. [email protected]:

Il giorno 1 aprile 2015 09:54, Fabrizio R. [email protected] ha
scritto:

P.S. Se continuate a dire ‘gemma’ io comincio a dire ‘rubino’ :stuck_out_tongue_winking_eye:

LOL … :smiley:

S.

my 2c: considera se ti va bene fare storage flat + tag/search. Ovvero
invece di avere

fatture/
fatture/febbraio-2015.pdf
fatture/marzo-2015.pdf
gattini/
gattinii/rossi/
gattinii/rossi/miao.jpg
gattinii/gialli/kitty.png

hai un livello solo con tag, e come UI gli metti solo un text input che
fa
search su nome e tag, i.e.

febbraio-2015.pdf [chiavi: fatture, febbraio, 2015]
marzo-2015.pdf [chiavi: fatture, marzo, 2015
miao.jpg [chiavi: rossi, gattini]

se fai cos ti serve solo

  • un modello con un attachment
  • una relazione N-M con le chiavi di ricerca.

Altrnativamente: un livello di directory solo cos pensano che ben
organizzato, e di nuovo modello molto semplice (basta che salvi
“directory”
come attributo del modello “File”).

Questo perch nella mia esperienza la gente non vuole usare le
directory,
vuole solo trovare le cose :slight_smile:

2015-04-01 8:25 GMT+02:00 Roberto F. [email protected]:

Vorrei inoltre gestire file xml, da importare ed esportare su mysql.

[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml


twitter: @riffraff
blog (en, it): www.riffraff.info
work: circleme.com

Grazie a tutti.

Volendo scrivere tutto quanto “a manina” (si può dire manina ? :slight_smile: ) cosa
dovrei usare ? system() ? exec() ? IO ?
ed in questo caso, come si risolve con i diritti sul file system ?
bisognerà riuscire ad usare sudo o pam o non so cos’altro per i comandi
della shell

ed una volta pubblicato su Heroku (p.e.), avrò i diritti per creare
utenti ed inviare comandi alla shell ?

Ho capito bene ?
E’ questo il modo di implementarlo senza gem (!) ?

fellons

Il giorno 1 aprile 2015 19:19, Roberto F.
[email protected]
ha scritto:

ed una volta pubblicato su Heroku (p.e.), avr i diritti per creare
utenti ed inviare comandi alla shell ?

non so per diritti ma eseguire script non dovrebbe essere un problema

S.

OT
Scusate, sapete perchè appare la mia email nelle vostre risposte ?

il framework web ti da generalmente un Tempfile quando l’utente fa
upload,
quello che dovresti fare salvarlo in un posto dove sopravvive,
perch il Tempfile appunto temporaneo :slight_smile:

Non credo ti serva usare system o exec, ti bastano le classi File,
FileUtil
e Dir.

Se lo facessi su heroku potresti comunque chiamare comandi da shell,
ma non avresti un file system persistente su cui salvarlo,
per cui dovresti metterlo, ad esempio, su s3.

Ma non ha senso che ti reinventi la cosa, usa paperclip o carrierwave.

Se invece lo vuoi fare tanto per imparare, allora conviene che ti leggi
i
sorgenti delle suddette gem :slight_smile:

2015-04-01 19:19 GMT+02:00 Roberto F. [email protected]:

http://lists.ruby-it.org/mailman/listinfo/ml


twitter: @riffraff
blog (en, it): www.riffraff.info
work: circleme.com