Memorizzazione di immagini in base64 vs binario, nel cloud

1

Sto sviluppando un sito Web di condivisione di foto. Attualmente, nel modo in cui l'ho scritto, un utente carica una foto (jpeg), che viene letta come Base64URL (usando FileReader). Il backend (Django) carica questo file su Google Cloud Storage (utilizzando django-storages ). La vista esegue il rendering (serializza) le immagini come url firmati che vengono quindi facilmente visualizzati dal client (attualmente un Vue.js SPA).

Mi chiedo se sarebbe più sensato archiviare le immagini come file binari e che tipo di domande dovrei chiedere per fare questa determinazione?

    
posta Evan Zamir 25.08.2017 - 20:11
fonte

1 risposta

9

Con base64, si ottiene un overhead del 33,3% a causa del rapporto 4: 3. Ciò significa che per un'immagine da 3 MB, pagherai 4 MB di spazio di archiviazione e, eventualmente, a seconda del modello di prezzo, 32 Mbps di spazio di rete ogni volta che l'immagine viene trasferita da e verso il server.

Il vantaggio di base64 si presenta in situazioni in cui è necessario trasferire dati binari attraverso un canale che non supporta bene binari o del tutto. Questo è il motivo per cui, ad esempio, gli allegati alle e-mail erano solitamente codificati in base64. Per maggiori informazioni su questo, vedi Perché è necessario base64 (alias perché non posso semplicemente inviare un file binario via email)?

Nel tuo caso, non vedo alcun motivo per evitare il binario. Pertanto, non è necessario utilizzare base64.

    
risposta data 25.08.2017 - 20:28
fonte

Leggi altre domande sui tag