Что такое префикс «blob: http: //» и где я могу узнать больше об этом?

35

Я использую Safari, и не уверен, что это работает в других браузерах, но когда я зарегистрировался для учетной записи штормовой путь, я вижу следующий URL

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

Префикс blob: является новым для меня, и я хочу знать, работает ли он во всех браузерах и какие другие префиксы могут существовать.

goodguys_activate
источник
2
На SO
Bakudan

Ответы:

17

URI / URL-адрес BLOB-объекта, созданный JavaScript, относится к данным, которые в данный момент хранятся в памяти вашего браузера (только на текущей странице), и не относится к данным, существующим на хосте.

Для получения дополнительной информации см .: https://www.npmjs.com/package/blob-util.

Масуд
источник
8

Начало URL до первого двоеточия называется «URI-схемой» (или «URL-схемой»). Поиск в Google blob URI schemeпоказывает усилия API файла W3C .

Большинство схем URI не имеют стандартных положений для содержания целого другого URI, поэтому вы не будете думать о них как о префиксе другого целого URI. Помимо http: и https:, некоторые распространенные схемы URI включают в себя:

  • FTP:
  • почты:
  • данные:
  • сценарий:
  • Smb: (и CIFS:)
  • пфпи:

... и многое другое. Я уверен, что я опускаю все фавориты. :)

Spiff
источник
7

Я копирую и вставляю ответ из StackOverflow из-за фоновой информации о блобе в строке URL.

URL, созданный из JavaScript, Blobне может быть преобразован в «обычный» URL.

A blob: URL-адрес не относится к данным, существующим на сервере, он относится к данным, которые ваш браузер в данный момент хранит в памяти, для текущей страницы. Он не будет доступен на других страницах, он не будет доступен в других браузерах и не будет доступен с других компьютеров.

Следовательно, в общем случае нет смысла преобразовывать URL-адрес BLOB-объекта в «обычный» URL-адрес. Если вы хотите получить обычный URL-адрес, вам придется отправить данные из браузера на сервер, и сервер сделает их доступными как обычный файл.

Можно преобразовать blob: URL в data: URL, по крайней мере, в Chrome. Вы можете использовать AJAX-запрос для «извлечения» данных из blob: URL (хотя на самом деле это просто извлечение данных из памяти вашего браузера, а не выполнение HTTP-запроса).

Иванов
источник
0

MDN - хороший ресурс для понимания вещей простым языком. Я бы также предложил https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL в качестве хорошего ресурса. Они также показывают спецификацию W3C в нижней части своей страницы, ту же, что и в представленной Spiff, но оригинальные спецификации могут быть подробными и трудными для чтения. Я бы сказал, что Spiff - самый правильный способ связать вас с документами W3C.

Я не думаю, что ссылка на npmjs, предоставленная Масудом, очень полезна. Он направляет вас в библиотеку Javascript на хосте библиотеки npmjs. Библиотека blob-util используется для работы со стандартным API-интерфейсом в браузере для работы с BLOB-объектами, что упрощает написание кода для этих вещей, но не является хорошим справочным материалом для понимания URL-адресов BLOB-объектов и их сущности.

adjenks
источник