WebExtensions에 Firefox 부가 기능 SDK 확장을 포팅합니다. 이전에 브라우저의 검색 엔진에 액세스 할 수 있었지만 지금은 할 수 없으므로 유용한 사용자가 모든 설치된 엔진이있는 search.json.mozlz4 파일을 읽으라고 제안했습니다. 그러나이 파일은 LZ4 압축을 사용하는 json이며 Mozilla의 own LZ4 format에 사용자 지정 마법 번호 인 'mozLz40 \ 0'이 있습니다.WebExtensions (JavaScript, Firefox)에서 LZ4 압축 텍스트 파일 (mozlz4) 읽기
하기 전에, 하나는 mozlz4 파일을 포함 LZ4 압축을 사용하여 텍스트 파일 읽기이를 사용할 수 있습니다
이let bytes = OS.File.read(path, { compression: "lz4" });
let content = new TextDecoder().decode(bytes);
(필자는 "압축"필드에 대한 문서를 찾을 수 있지만, 작동을) 파일을 읽는 것은
var reader = new FileReader();
reader.readAsText(file);
reader.onload = function(ev) {
let content = ev.target.result;
};
이 어떤 방식으로 압축을 처리하지 않습니다이다와
지금, WebExtensions를 사용하여, 최고의 내가 올 수 있습니다. This library은 LZ4import lz4
file_obj = open("search.json.mozlz4", "rb")
if file_obj.read(8) != b"mozLz40\0":
raise InvalidHeader("Invalid magic number")
print(lz4.block.decompress(file_obj.read()))
가 어떻게이 JS에서 할 수있는이 파이썬 코드, 비교, 예상대로 작동하는 동안 그러나, 나는 사용자 정의 매직 번호 처리를 제거하더라도 나는 그것이 파일을 압축을 얻을 수 없다?
고맙게도, 나는 실수로 node-lz4가 실제로 독립 실행 형으로 작동하여 래퍼를 피하기 위해'require'를 구현했습니다. 그러나, 사용자 지정 lz4 매직 번호가있는 특정 mozlz4 형식을 처리하는 것처럼 보이지는 않습니다 (데이터와 해당 확인에서 매직 번호를 제거하더라도). 나는이 모든 질문을 업데이트했다. – CanisLupus