从使用URL. createobjecturl创建的Blob URL中获取Blob对象



我发现的每个问题都告诉我,返回对象的唯一方法是使用blob:https://www.example.com/0ea6c8a8-732f-42c7-9530-4805c4e785f5作为目标url的ajax请求获取它。blobs没有保存在我的浏览器内存中,因此应该立即访问?在我看来,这与远程服务器/网站无关。一些JS文件创建了blob对象,生成blob URL并将其保存在内存中。

我尝试在几个网站上使用let blob = await fetch(url).then(r => r.blob());,总是在cors限制下运行。也许只有创建它的脚本(不同的域)被允许在其上下文中访问它,考虑到blob内容实际上保存在浏览器的内存中,这是非常不幸的。

我知道通过观察网络请求访问blob指向或包含的资源的其他方法。这不是我想问的。我想了解,如何解包blob URL以访问浏览器控制台内的blob对象,以查看信息是如何保存的。当涉及到视频时,由于大小和带宽的限制,Blob根本不能包含实际的视频,那么它包含什么呢?清单文件本身?

请参阅我的答案,了解从Blob: URI检索Blob的方法(您需要在页面创建Blob之前在那里运行脚本)。抓取只创建一个副本。

blob: URL链接到远程服务器,因为它共享相同的源。所以,是的,Blob(二进制数据)在您的计算机上,但是URL只能由从同一来源运行的脚本访问,而不是从生成它的那个。

是的,Blob确实包含了所有的视频数据,但是你拥有的字符串是一个Blob: URL,它只是一个指向Blob的指针,Blob本身存储在浏览器的内存中。

最新更新