Co to jest przedrostek „blob: http: //” i gdzie mogę dowiedzieć się więcej na ten temat?

35

Korzystam z safari i nie jestem pewien, czy to działa w innych przeglądarkach, ale kiedy zarejestrowałem się na koncie ścieżki burzy, widzę następujący adres URL

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

Prefiks blob: jest dla mnie nowy i chcę wiedzieć, czy działa we wszystkich przeglądarkach i jakie inne prefiksy mogą istnieć.

goodguys_activate
źródło
2
Istnieje dobre wytłumaczenie w SO
Bakudan,

Odpowiedzi:

17

Identyfikator URI / URL obiektu blob został utworzony przez JavaScript, odnosi się do danych, które przeglądarka ma obecnie w pamięci (tylko na bieżącej stronie) i nie odnosi się do danych istniejących na hoście.

Aby uzyskać więcej informacji, patrz: https://www.npmjs.com/package/blob-util

Masoud
źródło
8

Początek adresu URL do pierwszego dwukropka nazywa się „schematem URI” (lub „schematem URL”). Googling blob URI schemeujawnia wysiłki W3C dotyczące interfejsu API plików .

Większość schematów URI nie ma standardowych przepisów dotyczących przechowywania całego innego URI, więc nie pomyślałbyś o nich jako o prefiksie innego całego URI. Oprócz http: i https: niektóre popularne schematy URI obejmują:

  • ftp:
  • mailto:
  • dane:
  • scenariusz:
  • smb: (i cifs:)
  • afp:

…i wiele więcej. Jestem pewien, że pomijam ulubione osoby. :)

Spiff
źródło
7

Kopiuję i wklejam odpowiedź z StackOverflow z powodu informacji w tle na temat obiektu blob w ciągu adresu URL.

Adres URL utworzony z JavaScript Blobnie może zostać przekonwertowany na „normalny” adres URL.

Odp . blob: Adres URL nie odnosi się do danych istniejących na serwerze, odnosi się do danych, które przeglądarka aktualnie ma w pamięci dla bieżącej strony. Nie będzie dostępny na innych stronach, nie będzie dostępny w innych przeglądarkach i nie będzie dostępny z innych komputerów.

Dlatego generalnie nie ma sensu konwertowanie adresu URL obiektu Blob na „normalny” adres URL. Jeśli chcesz mieć zwykły adres URL, musisz wysłać dane z przeglądarki na serwer, a serwer udostępni go jak zwykły plik.

Możliwe jest przekonwertowanie obiektu blob: URL na dane: URL, przynajmniej w Chrome. Możesz użyć żądania AJAX, aby „pobrać” dane z obiektu blob: URL (nawet jeśli tak naprawdę wyciąga je z pamięci przeglądarki, a nie wysyła żądania HTTP).

Iwanow
źródło
0

MDN jest dobrym źródłem do zrozumienia rzeczy w prostym języku. Sugerowałbym również https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL jako dobry zasób. Pokazują też specyfikację W3C na dole strony, taką samą jak pod warunkiem Spiff, ale oryginalne specyfikacje mogą być pełne i trudne do odczytania. Powiedziałbym, że Spiff najlepiej nadaje się do łączenia cię z dokumentami W3C.

Nie sądzę, aby link do npmjs podany przez Masoud był bardzo przydatny. Przekierowuje cię do biblioteki JavaScript na hoście biblioteki npmjs. Biblioteka obiektów blob służy do owijania standardowego interfejsu API w przeglądarce do pracy z obiektami blob i upraszcza pisanie kodu dla tych rzeczy, ale nie jest dobrym odniesieniem do zrozumienia adresów URL obiektów blob i ich nazwy.

adjenks
źródło