![èŠåºãç»å](https://assets.st-note.com/production/uploads/images/86441067/rectangle_large_type_2_03f7fc0080b40bb7111d670a84137686.png?width=1200)
ð ããŒã¿URIã¹ããŒã ãšblobãšiframe
Blobãªããžã§ã¯ãã¯ããã€ãåãåç §ãããã€ãåã®ç·ãã€ãæ°ã§ããsizeå±æ§ãšããã€ãåã®ã¡ãã£ã¢ã¿ã€ããå°æåã§è¡šããASCIIãšã³ã³ãŒãæååã§ããtypeå±æ§ãæã€ã
åBlobã¯ãå éšã¹ãããã·ã§ããç¶æ ãæããªããã°ãªããªãããã®ç¶æ ã¯ãåºç€ãšãªãã¹ãã¬ãŒãžãååšããå Žåããã®ã¹ãã¬ãŒãžã®ç¶æ ã«åæèšå®ãããªããã°ãªããªããã¹ãããã·ã§ããç¶æ ã®æŽãªãèŠç¯çãªå®çŸ©ã¯ãFilesã«ã€ããŠèŠåºãããã
ãã®çšèªã¯NoSQLããŒã¿ããŒã¹ãç¹ã«Redisãªã©ã®ããŒããªã¥ãŒã¹ãã¢ããŒã¿ããŒã¹ã§äœ¿çšãããŠããããŸããJavaScriptãªã©ãå®è¡æã«Blobãæäœã§ããèšèªã§ã䜿çšãããŠãã
Blobããšããå称ã¯ããã«ã深局åŠç¿ãœãããŠã§ã¢ã®Caffeãå€æ¬¡å é åãè¡šçŸããããã«åçšãããã®ã§ããã
blobãšããèšèã¯ãæåã«ããŒã¿ããŒã¹ç®¡çã·ã¹ãã ã§ãåäžã®å®äœãšããŠæ ŒçŽããããã€ããªããŒã¿ã®ã³ã¬ã¯ã·ã§ã³ãè¡šãããã«äœ¿çšãããŸããã
![](https://assets.st-note.com/img/1662587430951-0fsLarjNwU.png)
å°ãæŽå²ãæ¯ãè¿ã£ãŠã¿ãŸããããBlobã¯Jim Starkeyã«ãã£ãŠDECã§çºæãããRdb補åã§åããŠå®è£ ãããŸãããJimã¯InterBaseãèšèšãããšããåãã¡ã«ããºã ã䜿ããŸããã圌ã¯åãã¡ã«ããºã ãã€ãŸããã¬ã³ãŒãã«æ ŒçŽããããããIDã䜿çšããŸãããã¬ã³ãŒãã«æ ŒçŽãããblob-idã§ãéããŠããã«èªãããšãããã£ãã·ã¥ããŠåŸã§èªãããšãã§ããŸãã(åããã©ã³ã¶ã¯ã·ã§ã³ã®äžã§ïŒãblobãéããšãblob ãã³ãã«ãäœæãããããã¯blobå ã®çŸåšã®ãªãã»ãããå«ãæ§é äœãžã®ãã€ã³ã¿ãŒã§ããããã¯ãblobå ã®çŸåšã®ãªãã»ãããå«ãæ§é äœãžã®ãã€ã³ã¿ãŒã§ãããã°ã©ã ãèŠæ±ãããããããµã€ãºã®ãã£ã³ã¯ã§blobãèªã¿åããããã«ããŸãããã®æ§é äœãžã®ãã€ã³ã¿ã䜿çšããŠãããã°ã©ã ãèŠæ±ããä»»æã®ãµã€ãºã®ãã£ã³ã¯ãèªã¿åãããšãã§ããŸãã[ã»ã°ã¡ã³ããµã€ãºã¯æšå¥šå€ã§ããããããã«çµã¿èŸŒãŸããŠããããã§ã¯ãããŸããã
ãã®çšèªã¯éåžžããªãŒãã³ãœãŒã¹ã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®ã«ãŒãã«ã«ããŒããããããã€ã¹ãã©ã€ãã¢ãžã¥ãŒã«ãæããæã«ã¯ãã·ã¹ãã ãã¡ãŒã ãŠã§ã¢ã€ã¡ãŒãžããã€ã¯ãã³ãŒãã®ã¢ããããŒãããŸãã¯ãŠãŒã¶ã©ã³ãããã°ã©ã ã®ãããªãã«ãŒãã«ã®å€åŽã§å®è¡ãããã³ãŒãã«ãé©çšãããŸãã
倧å€æ°ã®ãªãŒãã³ãœãŒã¹ãããžã§ã¯ãã¯ããã€ããªã®ã¿ã®ããã€ã¹ãã©ã€ãïŒãããïŒãšãã€ããªã®ã¿ã®ãã¡ãŒã ãŠã§ã¢ïŒããããšã¯ã¿ãªãããŸãã[11]: ... ïŒãåºå¥ããŠããŸããâ)
ãªããžã§ã¯ãURLãšããŠãç¥ããããããURIã¹ããŒã ã¯ãURLã®ã¿ã§åäœããããã«èšèšãããAPIãä»ããŠããŒã«ã«ã«çæãããããŒã¿ã«ã¢ã¯ã»ã¹ããããã«äœ¿çšãããUniform Resource IdentifierïŒURIïŒã¹ããŒã ã§ãã[1]ãblob URIã¯blob:http://example.com/550e8400-e29b-41d4-a716-446655440000ã®ããã«ãªããURIã®æ«å°Ÿã¯æ®éçãªäžæèå¥åãšãªããŸã[1]ã
Web API ã«ã¯ã Base64 ããšã³ã³ãŒããŸãã¯ãã³ãŒãããããã®ãã€ãã£ãã¡ãœããã Base64 encoding and decoding ããããŸãã
BlobïŒãŸãã¯ãªããžã§ã¯ãïŒURLã¯ãblob:http://example.com/550e8400-e29b-41d4-a716-446655440000 ã®ãããªURLã§ããããã«ãããBlobãšMediaSourceããimgèŠçŽ ãªã©ãURLã§ã®äœ¿çšã®ã¿ãæ³å®ããä»ã®APIãšçµ±åããããšãã§ããŸããBlob URLã¯ãããŒã«ã«ã«çæãããããŒã¿ã®ããŠã³ããŒããéå§ããããã ãã§ãªããããã²ãŒãããããã«äœ¿çšããããšãã§ããŸãã
ãã®ç®çã®ããã«ãcreateObjectURL(obj)ãšrevokeObjectURL(url)ãšãã2ã€ã®éçã¡ãœãããURLã€ã³ã¿ãŒãã§ã€ã¹ã§å ¬éãããŠããŸããæåã®ã¡ãœããã¯URLããBlobãžã®ãããã³ã°ãäœæãã2çªç®ã®ã¡ãœããã¯ãã®ãããã³ã°ãåãæ¶ããŸãããããã³ã°ãååšããéããBlobã¯ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ãããªãã®ã§ãåç §ãäžèŠã«ãªã£ããããã«URLãåãæ¶ãããã«æ³šæããå¿ èŠããããŸãããã¹ãŠã®URLã¯ãURLãäœæããã°ããŒãã«ãæ¶æ» ããæç¹ã§ç¡å¹ã«ãªããŸãã
åãŠãŒã¶ãŒãšãŒãžã§ã³ãã¯ããããURLã¹ãã¢ãç¶æããå¿ èŠããããŸããblob URLã¹ãã¢ã¯ãããŒãæå¹ãªURLæååã§ãå€ãblob URLãšã³ããªã§ãããããã§ãã
blob URLãšã³ããªã¯ããªããžã§ã¯ãïŒBlobãŸãã¯MediaSourceã¿ã€ãïŒãšç°å¢ïŒç°å¢èšå®ãªããžã§ ã¯ãïŒã§æ§æãããŸãã
blob URLã¹ãã¢ã®ããŒïŒblob URLãšãåŒã°ããïŒã¯æå¹ãªURLæååã§ã解æããããšãã¹ããŒã ããblobãã«çããURLã空ã®ãã¹ãã1ã€ã®èŠçŽ ãããªããã¹ïŒããèªäœãæå¹ãªURLæååïŒãçæãããŸãã
![](https://assets.st-note.com/img/1662616503682-malt535sLK.png)
ãé¡ãèŽããŸã