Come gestire i file uploads express (UUID / posizione)

1

Sto costruendo un sito web della comunità con un backend express NodeJS e un database mysql. Ora sono arrivato al punto in cui voglio archiviare le immagini del profilo degli utenti e le immagini relative a domande specifiche. Ho cercato un po 'su google e ho trovato molti modi su come gestire il caricamento delle immagini, ma ho ancora problemi a capire come e cosa memorizzare riguardo alla posizione dell'immagine.

Stavo pensando di creare un archivio di valori-chiave o una tabella di database con un UUID generato come chiave e la posizione dell'immagine sul server (ad esempio /images/user/123/profilepic/bla.jpg) come valore. In questo modo ho potuto memorizzare l'UUID nel database (ad esempio nella tabella utente come profilePicId) e gestire tutte le richieste di immagini nello stesso modo, semplicemente chiedendo l'immagine con un determinato UUID.

Usando questo metodo, il processo sarebbe come il seguente quando il cliente vuole ottenere le informazioni utente + la foto del profilo di un utente:

  1. Ottieni la richiesta di ottenere un oggetto dall'utente (nome di cognome, picUUID).
  2. Ottieni richiesta su api / file / {picUUID}
  3. Server > controllare il valore-chiave memorizzare quale posizione è assegnata a UUID e immagine di ritorno
  4. Inserisci l'indirizzo apiUrl / file / {user.picUUID} nello src di un tag immagine e completato:)

Sono sulla buona strada qui o quale sarebbe la tua opinione su questo? Immagino che questo problema sia stato affrontato molte volte. Sono quindi abbastanza perplesso sul fatto che non ci siano molte informazioni su questo argomento.

    
posta Bram 14.01.2016 - 12:39
fonte

1 risposta

2

Se c'è sempre una sola immagine per persona, potrebbe non essere necessario un archivio dati immagine separato. È possibile memorizzare il percorso con l'utente. Mantenerlo separato non fa male, o ovviamente.

Indipendentemente da come lo memorizzi, vorrei semplicemente restituire il percorso dell'immagine come parte del "profilo" dell'utente. /api/userprofile/id potrebbe restituire:

{
    name: "Honey Boo Boo",
    favoriteColor: "plaid",
    imagePath: "/images/user/123/profilepic/bla.jpg"
}

Quindi è un processo in un'unica fase per associare i dati del profilo a una vista rispetto a una richiesta secondaria per recuperare, associare e risolvere l'immagine.

    
risposta data 14.01.2016 - 14:15
fonte

Leggi altre domande sui tag