Qu'est-ce que le préfixe «blob: http: //» et où puis-je en savoir plus à ce sujet?

35

J'utilise Safari, et je ne sais pas si cela fonctionne dans d'autres navigateurs, mais lorsque je me suis inscrit pour un compte Storm Path, je vois l'URL suivante

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

Le blob: prefix est nouveau pour moi et je veux savoir s'il fonctionne sur tous les navigateurs et quels autres préfixes peuvent exister.

goodguys_activate
la source
2
Il y a une bonne explication à SO
Bakudan

Réponses:

17

L'URI / URL Blob a été créé par JavaScript, fait référence aux données que votre navigateur a actuellement en mémoire (uniquement dans la page actuelle) et ne fait pas référence aux données qui existent sur l'hôte.

Pour plus d'informations à utiliser, voir: https://www.npmjs.com/package/blob-util

Masoud
la source
8

Le début d'une URL jusqu'au premier deux-points est appelé "schéma d'URI" (ou "schéma d'URL"). La recherche sur Google blob URI schemerévèle les efforts de l'API de fichiers du W3C .

La plupart des schémas d'URI n'ont pas de dispositions standard pour contenir un tout autre URI, vous ne penseriez donc pas qu'ils préfixent un autre URI entier. Outre http: et https :, certains schémas URI courants incluent:

  • ftp:
  • mailto:
  • Les données:
  • scénario:
  • smb: (et cifs:)
  • afp:

…et beaucoup plus. Je suis sûr que je laisse de côté les favoris de tout le monde. :)

Spiff
la source
7

Je copie et colle la réponse de StackOverflow en raison d'informations d'arrière-plan sur le blob dans la chaîne URL.

Une URL qui a été créée à partir d'un JavaScript Blobne peut pas être convertie en URL "normale".

R blob: L'URL ne fait pas référence aux données qui existent sur le serveur, elle fait référence aux données que votre navigateur a actuellement en mémoire, pour la page actuelle. Il ne sera pas disponible sur d'autres pages, il ne sera pas disponible dans d'autres navigateurs et il ne sera pas disponible à partir d'autres ordinateurs.

Par conséquent, il n'est pas logique, en général, de convertir une URL Blob en URL "normale". Si vous vouliez une URL ordinaire, vous devrez envoyer les données du navigateur à un serveur et le rendre disponible comme un fichier ordinaire.

Il est possible de convertir un blob: URL en data: URL, au moins dans Chrome. Vous pouvez utiliser une requête AJAX pour "récupérer" les données de l'URL blob: (même si cela ne fait que les extraire de la mémoire de votre navigateur, sans faire de requête HTTP).

Ivanov
la source
0

MDN est une bonne ressource pour comprendre les choses en langage simple. Je suggérerais également https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL comme une bonne ressource. Ils montrent également la spécification W3C au bas de leur page, la même que celle fournie par Spiff, mais les spécifications originales peuvent être verbeuses et difficiles à lire. Je dirais que Spiff est le plus correct pour vous lier aux documents du W3C.

Je ne pense pas que le lien vers npmjs fourni par Masoud soit très utile. Il vous dirige vers une bibliothèque Javascript sur l'hôte de bibliothèque npmjs. La bibliothèque blob-util est utilisée pour encapsuler l'API standard dans le navigateur pour fonctionner avec les blobs et elle a simplifié l'écriture de code pour ces choses, mais ce n'est pas une bonne référence pour comprendre les URL de blob et ce qu'elles sont.

adjenks
la source