不少前程序员,遇到blob后都会很郁闷,什么时候出现的新知识,blob 其实是 h5 表征的 Blob 对象数据,具体请看文档。我们可以使用 Blob 对象隐藏真实的资源路径,在一定程度上可以起到数据的加密性,更多的是为了干扰爬虫。
比如日常使用的一些音频,视频,图片,我们都可以使用其 Blob 二进制数据流来表征数据,而非使用 uri,就像经常用到的 image src 的 dataUrl。
要使用 blob 来表征数据资源,需做到以下两点:
1、服务端返回的为资源的二进制数据
2、前端接收到二进制数据后,使用 URL.createObjectURL(blobData) 方法将服务端返回的二进制数据转换为 blob 的 url 资源挂载到相应的资源对象。
实例
对 video.mp4 资源加密,不使用静态 url 进行加载,使用 blob url 进行加密。
服务端 index.php
<?php // 返回二进制流数据$file_path = __DIR__ . '/video.mp4';$file_size = filesize($file_path);$oct_data = fread(fopen($file_path, "r"), $filesize); header("Content-type: video/mpeg4;charset=UTF-8");header("Content-Length: " . $filesize);echo $oct_data;
前端 index.html