File, Blob, 그리고 URL은 웹 애플리케이션에서 파일과 데이터를 표현하고 다루는 데 사용되는 개념들이다.
JavaScript에서 Blob(Binary Large Object, 블랍)은 이미지, 사운드, 비디오와 같은 멀티미디어 데이터를 다룰 때 사용할 수 있다. 대개 데이터의 크기(Byte) 및 MIME 타입을 알아내거나, 데이터를 송수신을 위한 작은 Blob 객체로 나누는 등의 작업에 사용한다.
File은 사용자의 로컬 파일 시스템에서 선택한 파일을 나타내는 객체다. 일반적으로 파일 업로드나 파일 조작을 위해 사용된다. File 객체는 Blob 객체를 상속하며, 파일의 이름, 크기, 타입 등의 추가적인 정보를 가지고 있다.
URL은 웹 리소스의 주소를 나타내는 문자열이다. URL은 createObjectURL()
을 사용하여 Blob 또는 File 객체를 URL로 변환할 수 있다. 변환된 URL은 해당 Blob 또는 File 객체를 가리키는 유효한 주소로 사용될 수 있다.
ArrayBuffer는 일련의 바이너리 데이터를 나타내는 고정 크기 버퍼다. ArrayBuffer는 일반적으로 바이너리 데이터를 처리하고 다루는 데 사용된다. 주로 TypedArray 및 DataView와 함께 사용되며, 데이터를 다양한 형식으로 읽고 쓸 수 있는 메모리 버퍼로 동작한다.
이 경우엔 별도의 과정이 필요없다. File 객체가 Blob 객체를 상속하기 때문에 바로 Blob으로 사용할 수 있다.