2015-06-16 18 views
104

Sto riscontrando un grosso problema con l'URL BLOB.Che cos'è un blob URL e perché viene utilizzato?

ero alla ricerca di src di tag video su YouTube e ho scoperto che il video src era come:

src="blob:https://crap.crap" 

ho aperto l'URL blob che era in src video ha dato un errore ed io posso' t aperto ma stava lavorando con il tag src. Com'è possibile?

Requisiti:

  • cosa è URL blob?
  • Perché viene utilizzato?
  • Posso creare il mio URL blob su un server?
  • Per eventuali dettagli aggiuntivi

grazie in anticipo

+1

Ora posso nascondere l'URL del video ma può essere registrato ..... qualunque cosa tu faccia se stai mostrando il video sul sito web, allora può essere scaricato ..... Sto facendo un file php che richiede il parametro id e controlla il nome reale e il nome della cartella dal server e quindi se c'è un cookie impostato per l'utente per un indirizzo ip specifico nel database allora lascio che l'utente visualizzi il video ora Se sta usando IDM allora IDM fa ' io uso i cookies quindi il video non può essere scaricato – Waqas

+1

Ma qui c'è un altro se il video è stato scaricato da chrome dallo script php allora può essere scaricato ma U può controllare anche per user-agent quindi sto facendo una classe che sarà in grado di generare e anche nascondere l'utente e dà errore 403 se rileva che c'è un altro programma che sta scaricando il video – Waqas

+1

Anche con il javascript faccio un blob e poi assicurarmi che il blob non sia globale e quindi faccio una tela e disegno e foto dal video ancora e ancora Così sarà molto difficile per i programmi ottenere src di video e sto usando un file php per generare il file audio Dal modo in cui ne ho un altro che non è così semplice e richiede un buon programmatore ..... Puoi creare una pagina con uno script php e generare frame video php impostati come 100 frame su una pagina e poi usare javascript per catturarlo e processarlo anche su canvas + caricare anche la seconda pagina per ottenere altri 100 frame e prima creare il video giocabile. – Waqas

risposta

104

Blob URL (r ef W3C, nome ufficiale) o URL oggetto (rif. MDN e il nome del metodo) vengono utilizzati con un oggetto Blob o File.

src = "blob: https://crap.crap" Ho aperto l'URL blob che era in src di il video ha dato un errore e non posso aprire, ma è stato lavorare con il tag src come sia possibile?

Gli URL blob possono essere generati solo internamente dal browser. URL.createObjectURL() creerà un riferimento speciale all'oggetto Blob o File che in seguito può essere rilasciato utilizzando URL.revokeObjectURL(). Questi URL possono essere utilizzati solo localmente nella singola istanza del browser e nella stessa sessione (cioè la durata della pagina/documento).

Che cos'è l'URL di blob?
Perché è usato?

Blob URL/Object URL è uno pseudo protocollo per consentire agli oggetti Blob e File di essere utilizzati come origine URL per elementi come immagini, collegamenti di download per dati binari e così via.

Ad esempio, non è possibile distribuire un oggetto di dati grezzi oggetto Immagine poiché non saprebbe cosa fare con esso. Richiede ad esempio immagini (che sono dati binari) da caricare tramite URL. Questo vale per tutto ciò che richiede un URL come sorgente. Invece di caricare i dati binari, quindi restituirli tramite un URL, è meglio utilizzare un passaggio locale aggiuntivo per poter accedere ai dati direttamente senza passare attraverso un server.

È anche una migliore alternativa a Data-URI, ovvero stringhe codificate come Base-64. Il problema con Data-URI è che ogni char prende due byte in JavaScript. Inoltre, un 33% viene aggiunto a causa della codifica Base-64. I BLOB sono puri array di byte binari che non hanno un sovraccarico significativo come fa Data-URI, il che li rende più veloci e più piccoli da gestire.

Posso creare il mio URL di blob su un server?

No, gli URL Blob/gli URL oggetto possono essere creati solo internamente nel browser. È possibile creare Blob e ottenere oggetto File tramite l'API di lettura file, sebbene BLOB significhi solo oggetto Binary Large e sia archiviato come array di byte. Un cliente può richiedere che i dati vengano inviati come ArrayBuffer o come Blob. Il server dovrebbe inviare i dati come dati binari puri. I database spesso usano Blob per descrivere anche gli oggetti binari, e in sostanza stiamo parlando fondamentalmente di array di byte.

se avete allora Ulteriori dettagli

È necessario incapsulare i dati binari come un oggetto BLOB, quindi utilizzare URL.createObjectURL() per generare un URL locale per esso:

var blob = new Blob([arrayBufferWithPNG], {type: "image/png"}), 
    url = URL.createObjectURL(blob), 
    img = new Image(); 

img.onload = function() { 
    URL.revokeObjectURL(this.src);  // clean-up memory 
    document.body.appendChild(this); // add image to DOM 
} 

img.src = url;       // can now "stream" the bytes 

Si noti che URL può essere prefisso nei browser Webkit, quindi utilizzare:

var url = (URL || webkitURL).createObjectURL(...); 
+0

Ho uno script php che trasmette un video con id che è $ _GET ["id"] così come posso dare un url come blob: // in modo che possa essere usato dal mio video src come si sta usando su youtube. look è solo javascript .... Permettetemi di darvi qualche informazione su url ho url come http://website.com/video.php?id=ljduwkbcj27dj quindi come usare javascript o php per dare un url blob – Waqas

+0

@Waqas se l'URL va a un file video online (o una pagina che spinge un file video), puoi impostare quell'URL direttamente come sorgente per l'elemento video (es .: 'video.src =" http://website.com/video.php ? id = ljduwkbcj27dj ";'). Questo è più correlato all'intestazione della risposta dal server e al tipo di dati che la pagina restituisce. Ma questo sarebbe un po 'fuori dalla portata della domanda originale da coprire. Gli URL degli oggetti vengono utilizzati localmente solo come ponte tra dati binari e elementi che richiedono URL come origine. – K3N

+0

quindi, perché YouTube utilizza BLOB – Waqas

3

Qual è blob url? Perché è usato?

BLOB è solo una sequenza di byte. Il browser lo riconosce come flusso di byte. È usato per ottenere il flusso di byte dalla fonte.

Un oggetto Blob rappresenta un oggetto simile a file di dati grezzi immutabili. I BLOB rappresentano dati che non sono necessariamente in un formato nativo di JavaScript. L'interfaccia File è basata su Blob, che eredita la funzionalità blob e la espande per supportare i file sul sistema dell'utente.

Posso creare il mio URL di blob su un server?

Sì, è possibile ci sono modi serveral da fare così per esempio provare http://php.net/manual/en/function.ibase-blob-echo.php

Altre notizie su

+0

È possibile ottenere qualche vantaggio utilizzando l'URL BLOB? – Waqas

+0

Puoi leggere [questo] (http://stackoverflow.com/questions/20950791/html5s-file-api-blob-usages) per ottenere una risposta. Ovviamente ci sono pro e contro. – Robert

+0

Stai mescolando gli URL degli oggetti con i BLOB. Object-URL è uno pseudo protocollo per consentire l'utilizzo dei BLOB come origine URI. – K3N

Problemi correlati