Sto costruendo un sito Web che (tra le altre cose) consente all'utente di caricare foto tramite web api. Le immagini dell'utente verranno archiviate in BLOB di archiviazione blu per essere visualizzate negli album degli utenti e condivise con i social media. Il sito sarà ospitato come un sito Web azzurro. Sono desideroso di ridurre al minimo i costi di trasferimento dei dati. Comprendo che il trasferimento dei dati tra un sito Web e uno spazio di archiviazione BLOB/tabella non comporta addebiti per il trasferimento dei dati (poiché non è considerato "in uscita") mentre i dati richiesti all'esterno del sito Web di Azure non lo fanno. In risposta a questo, ho 2 strategie per esporre le immagini al browser:Strategia per ridurre i costi dei dati in uscita di archiviazione di Azure
1.) Tramite l'URI al blob dell'immagine in memoria blu ad es. con account di archiviazione locale http://ipv4.fiddler:10000/devstoreaccount1/bcb2ad7581.jpg
2.) tramite web api che scarica i byte di immagine dalla memoria e li restituisce. per esempio. con host locale http://localhost:58559/api/image/bcb2ad7581.jpg
Queste sono le mie ipotesi. L'accesso diretto allo storage (metodo 1 sopra) è più efficiente. L'accesso alle immagini tramite web api (metodo 2 sopra) deve comportare spese generali che l'accesso diretto non ha, giusto? Ogni richiesta di API Web deve utilizzare un thread asp .net più cicli cpu. Per ogni richiesta di immagine API web elaborata, vale a dire una richiesta in meno per altre risorse API Web sul sito che non possono e devono essere accodate. D'altra parte qualsiasi sito esterno con cui l'immagine è condivisa aggiungerebbe un costo di trasferimento dati (tra gli altri costi) per ogni richiesta di immagine; se si accede tramite il metodo 1.
Quindi la mia strategia è quella di accedere alle immagini all'interno del sito tramite un collegamento diretto all'archiviazione (metodo 1) ad es. quando l'utente apre un album tutti i tag hanno azure blob azzurro nel loro attributo src. Tuttavia, quando l'utente fa clic sull'icona di Facebook per condividere, fornirò un collegamento all'immagine tramite web api (metodo 2). Mi rendo conto che l'utente può ignorare tutto ciò con plugin come il pulsante "PinIt", ecc., Ma va bene.
Sto solo imparando questa roba, quindi potrei essere lontano. Mi sbaglio se i costi di trasferimento in uscita non vengono applicati ai siti Web blu? Non penso di esserlo, ma l'intero modello di pricing è confuso, per non dire altro.
È l'accesso alla memoria BLOB da una pagina html del browser con tag e src atribute, considerato il trasferimento dei dati in uscita; anche se la pagina html proviene da un dominio di un sito Web azzurro? Voglio dire è solo gratuito quando il codice lato server accede allo storage, non al client html?
I costi di trasferimento dati salvati tramite il metodo 2 (se ce n'è uno) sono semplicemente annullati da un costo diverso associato al metodo web API (come il costo della larghezza di banda)?
Mi sbaglio riguardo al vantaggio in termini di prestazioni dell'accesso diretto all'archiviazione BLOB o forse a un errore relativo al sovraccarico delle richieste API Web?
Sono i primi tempi del progetto, quindi posso scaricare Azure se necessario. Preferirei non pensarci, perché penso che sia quello che sto cercando. Non voglio qualcosa per niente e sono felice di pagare per i servizi che consumo. Naturalmente, però, non voglio che la mia ignoranza mi costi.
Potrei fare con i vostri consigli, su questo, e veramente apprezzare il vostro aiuto.
Questa è una risposta fantastica. Grazie –