¿Qué es el prefijo "blob: http: //" y dónde puedo obtener más información al respecto?

35

Estoy usando safari y no estoy seguro de si esto funciona en otros navegadores, pero cuando me inscribí en una cuenta de ruta de tormenta, veo la siguiente URL

blob:https://api.stormpath.com/1be95204-93d6-4GUID HERE

El prefijo blob: es nuevo para mí y quiero saber si funciona en todos los navegadores y qué otros prefijos podrían existir.

goodguys_activate
fuente
2
Hay una buena explicación en SO
Bakudan

Respuestas:

17

Blob URI / URL fue creado por JavaScript, se refiere a los datos que su navegador tiene actualmente en la memoria (solo en la página actual) y no se refiere a los datos que existen en el host.

Para obtener más información sobre el uso, consulte: https://www.npmjs.com/package/blob-util

Masoud
fuente
8

El inicio de una URL hasta el primer colon se llama "esquema URI" (o "esquema URL"). Buscar en Google blob URI schemerevela los esfuerzos de la API de archivos del W3C .

La mayoría de los esquemas de URI no tienen disposiciones estándar para contener otro URI completo, por lo que no pensaría en ellos como prefijos de otro URI completo. Además de http: y https :, algunos esquemas comunes de URI incluyen:

  • ftp:
  • mailto:
  • datos:
  • guión:
  • smb: (y cifs:)
  • afp:

…y muchos más. Estoy seguro de que estoy dejando de lado los favoritos de todos. :)

Spiff
fuente
7

Copio y pego la respuesta de StackOverflow debido a la información de fondo sobre blob en la cadena de URL.

Una URL que se creó a partir de un JavaScript Blobno se puede convertir a una URL "normal".

R blob: La URL no se refiere a los datos que existen en el servidor, sino a los datos que su navegador tiene actualmente en la memoria, para la página actual. No estará disponible en otras páginas, no estará disponible en otros navegadores y no estará disponible desde otras computadoras.

Por lo tanto, no tiene sentido, en general, convertir una URL de Blob en una URL "normal". Si desea una URL ordinaria, debe enviar los datos del navegador a un servidor y hacer que el servidor la ponga a disposición como un archivo ordinario.

Es posible convertir un blob: URL en un data: URL, al menos en Chrome. Puede usar una solicitud AJAX para "recuperar" los datos del blob: URL (aunque en realidad solo lo está sacando de la memoria de su navegador, no haciendo una solicitud HTTP).

Ivanov
fuente
0

MDN es un buen recurso para comprender las cosas en lenguaje sencillo. También sugeriría https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL como un buen recurso. También muestran la especificación W3C en la parte inferior de su página, la misma que proporcionó Spiff, pero las especificaciones originales pueden ser detalladas y difíciles de leer. Diría que Spiff es el más correcto para vincularlo con los documentos del W3C.

No creo que el enlace a npmjs que proporcionó Masoud sea muy útil. Le dirige a una biblioteca Javascript en el host de la biblioteca npmjs. La biblioteca blob-util se usa para ajustar la API estándar en el navegador para trabajar con blobs y simplificó la escritura de código para estas cosas, pero no es una buena referencia para comprender las URL de blob y cuáles son.

adjenks
fuente