web-dev-qa-db-ja.com

"blob:http://"接頭辞とは何ですか?また、これに関する詳細はどこで確認できますか?

私はサファリを使用していて、これが他のブラウザでもうまく動作するかどうかわからないが、ストームパスアカウントにサインアップすると、次のURLが表示される

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

Blob:接頭辞は私にとって新しいものであり、それがすべてのブラウザで機能するかどうか、そして他にどのような接頭辞が存在するのかを知りたいのです。

30
Christopher

BLOB URI/URLはJavaScriptによって作成されたもので、ブラウザが現在メモリ内にあるデータ(現在のページ内のみ)を指しており、ホスト上に存在するデータを指しているわけではありません。

使用するための詳細については、以下を参照してください。 https://www.npmjs.com/package/blob-util

16
Masoud

最初のコロンまでのURLの始まりは、「URIスキーム」(または「URLスキーム」)と呼ばれます。 blob URI schemeのためのグーグルは W3CのファイルAPI努力 を明らかにします。

ほとんどのURIスキームには、他のURI全体を含めるための標準的な規定がないため、それらを別のURI全体のプレフィックスと見なすことはできません。 http:とhttps:に加えて、いくつかの一般的なURIスキームが含まれます:

  • ftp:
  • mailto:
  • データ:
  • スクリプト:
  • smb :(およびcifs:)
  • afp:

…などなど。私はみんなのお気に入りを除外していると確信しています。 :)

8
Spiff

URL文字列のBLOBに関する背景情報のため、 StackOverflow から回答をコピーして貼り付けます。

JavaScriptのBlobから作成されたURLは「通常の」URLに変換できません。

blob:URLは、サーバー上に存在するデータを参照するのではなく、現在のページの、ブラウザが現在メモリ内にあるデータを参照します。他のページでは利用できなくなり、他のブラウザでは利用できなくなり、他のコンピュータからも利用できなくなります。

したがって、一般的に、Blob URLを「通常の」URLに変換することは意味がありません。通常のURLが必要な場合は、ブラウザからサーバーにデータを送信し、サーバーに通常のファイルのように利用可能にする必要があります。

少なくともChromeでは、blob:URLをdata:URLに変換することは可能です。 AJAXリクエストを使用して、blob:URLからデータを「取得する」ことができます(それは実際にはブラウザのメモリから取り出すだけで、HTTPリクエストは行わない)。

5
Ivanov

MDNは平易な言葉で物事を理解するための良い情報源です。よいリソースとして、 https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL もお勧めします。彼らはまた彼らのページの一番下に、Spiffが提供したものと同じW3C仕様を示していますが、元の仕様は冗長で読みにくい場合があります。私はSpiffがあなたをW3Cのドキュメントにリンクするのに最も正しいと言うでしょう。

Masoudが提供したnpmjsへのリンクが非常に役に立つとは思いません。それはあなたをライブラリHost npmjs上のJavascriptライブラリに向かわせる。 blob-utilライブラリは、ブラウザ内の標準APIをラップしてblobを処理するために使用され、これらのことを行うためのコードの作成を簡略化しますが、blob URLとその内容を理解するのは適切ではありません。

0
adjenks