한국어

비디오 및 자막 · 자막 툴킷

기기를 떠나지 않고 자막 파일을 편집하는 방법: File API to Blob

· 작동 방식

자막 브라우저 처리 중 개인정보 보호

서버에 대한 경로 없이 브라우저 탭에 진입하고 메모리에서 변환된 후 다운로드로 다시 기록되는 파일 핸들
원본 ToolAcre 벡터 일러스트레이션

ToolAcre의 파일 도구는 탭 내부의 파일을 읽고 씁니다. 이 게시물에서는 파일 선택기부터 다운로드 링크까지 자막 파일을 가능하게 하는 브라우저 API와 아무것도 업로드되지 않았는지 확인하는 방법에 대해 설명합니다.

성적표는 기밀이며 변환기는 이를 업로드하기를 원합니다. 문제는 브라우저 측 처리로 해결됩니다.

증언 기록은 변환이 작동하는지 확인하기 위해 웹 서비스에 전달하는 파일이 아닙니다. 대부분의 온라인 변환기는 업로드 및 반환 방식입니다. 바이트가 서버로 이동하면 어떤 일이 발생하고 결과가 반환됩니다. 공개된 기밀 자료의 경우 출력을 볼 때 이미 발생했습니다.

브라우저 측 처리로 질문이 제거됩니다. 파일은 페이지로 전송되지 않고 페이지에서 열리고 모든 변환은 메모리 내 복사본에 대해 실행되며 결과는 동일한 탭에서 디스크에 다시 기록됩니다. 클레임보다 더 중요한 클레임은 테스트 가능합니다. 왜냐하면 네트워크 패널은 요청에 내용이 포함되었는지 여부를 표시하기 때문입니다.

파일 선택: File 객체 — 브라우저가 바이트를 어디로도 보내지 않고 페이지에 바이트 핸들을 제공하는 방법

파일 입력을 통해 파일을 선택해도 아무 것도 전송되지 않습니다. 페이지는 브라우저가 읽을 수 있는 이름, 크기, 유형 및 참조 등의 핸들인 File 객체를 받습니다. 파일을 선택하는 것은 업로드가 아니며 해당 핸들을 보유하는 것에 대한 어떤 것도 요청을 유발하지 않습니다. 바이트는 코드에서 요청할 때까지 해당 위치에 유지됩니다.

이러한 구별은 로컬 처리의 전체적인 기초이며 개인정보 보호 속성이 브라우저가 아닌 코드의 속성인 이유이기도 합니다. File 객체를 담고 있는 페이지는 그것을 어딘가에 완벽하게 게시할 수 있습니다. 도구를 지역적으로 만드는 것은 그렇지 않다는 것입니다.

로컬에서 텍스트 읽기 — File.text() 및 TextDecoder는 바이트를 메모리의 신호로 변환합니다.

텍스트를 읽으면 UTF-8로 디코딩된 문자열로 확인되는 File API 텍스트 메서드가 호출됩니다. 해당 문자열은 메모리의 큐로 구문 분석되고 모든 후속 작업은 해당 큐 개체에 대해 작동합니다. 이동은 정수 밀리초 타임스탬프에 추가되고, 텍스트에 대한 대체 항목을 정리하고, 유효성 검사는 순서 및 기간 오류를 찾기 위해 목록을 탐색합니다. 그 중 어느 것도 기록되지 않은 원본 파일을 건드리지 않습니다.

구문 분석은 일반 객체를 생성하므로 편집 중에 탭을 닫아도 디스크의 파일은 그대로 유지됩니다. 쓰기는 다운로드가 요청될 때만 발생하므로 정리할 임시 복사본도 없고 부분적으로 작성된 출력도 없습니다.

이것이 Web Worker가 아닌 메인 스레드에서 실행되는 이유와 크기 상한이 실제로 수행하는 작업

통합 문서 개요에서는 이 단계가 웹 작업자에서 실행될 것으로 예상하며 여러 ToolAcre 도구의 경우 실행됩니다. CSV, 이미지 및 PDF 앱은 각각 무거운 작업을 메인 스레드에서 옮깁니다. 자막 앱은 의도적으로 그렇지 않으며 그 이유는 자체 소스에 기록되어 있습니다. 장편 자막 파일은 수백 킬로바이트이고 밀리초 단위로 구문 분석하기 때문에 작업자는 필요하지 않은 작업에 대해 두 번째 번들과 두 번째 실패 모드를 추가합니다.

솔직하게 주의할 점은 크기 한도입니다. 도구 페이지에서 구문 분석하고 이름을 지정하기 전에 10MB 제한이 적용되지만 도구 문서에는 자막 확장자가 있는 이름이 지정된 항목에 대해 검사를 건너뛰므로 크기가 큰 자막 파일이 거부되지 않고 로드되고 페이지가 차단됩니다. 이는 메인 스레드에서 실행되는 실제 결과이며 숨겨지기보다는 문서화됩니다.

다시 쓰기: Blob 및 다운로드 속성 — 편집된 파일이 새 다운로드로 디스크에 도달하는 방법

다시 작성하면 직렬화된 텍스트에서 Blob이 생성되어 브라우저에 다운로드로 전달됩니다. 텍스트는 UTF-8 문자 집합을 포함하는 명시적 미디어 유형으로 래핑되고 해당 Blob에 대한 개체 URL이 생성되며 다운로드 속성이 포함된 앵커가 클릭되고 앵커가 제거됩니다. 파일은 다운로드 폴더에 새 파일로 도착합니다. 원본은 수정되지 않습니다.

취소는 즉시 취소되지 않고 의도적으로 연기됩니다. 클릭 후 개체 URL을 동기적으로 취소하면 일부 브라우저에서 다운로드가 취소될 수 있으므로 한 매크로 작업 이후에 예약되므로 안전하고 신속합니다. 이는 다운로드가 간헐적으로 시작되지 않는 경우에만 표시되는 세부 정보입니다.

작업 예: 전체 변환 및 재시간 동안 네트워크 패널 보기 — 파일 열기에서 파일 저장까지 조용한 패널

개체 URL은 보는 사람이 없으면 유출되는 부분입니다. 교훈은 저장소 도우미에 기록됩니다. 감사된 프로젝트는 여러 위치에서 개체 URL을 생성하고 이를 정확히 0으로 취소했으므로 모든 미리 보기는 탭 수명 동안 전체 Blob을 유지했습니다. 휴대폰에서는 몇 개의 래스터화된 페이지만으로도 브라우저가 탭을 죽일 수 있습니다.

구제책은 징계보다는 구조적입니다. 브라우저 API를 직접 호출하는 것은 없습니다. 범위가 지정된 도우미는 URL을 사용하여 코드를 실행하고 해당 코드가 성공 시, 발생 시, 거부 시에 취소되고, 관리형 핸들은 단일 기능보다 오래 지속되는 경우에 대해 멱등성 취소를 제공합니다. 각 호출 사이트에서 기억해야 하는 것이 아니라 올바른 정리가 기본값입니다.

여기서 다루지 않는 내용 — 도구는 나중에 다른 곳에 업로드하는 파일을 보호할 수 없습니다. 개인 정보 보호는 워크플로가 탭을 떠나는 지점에서 끝납니다.

신뢰보다는 확인하려면 파일을 선택하기 전에 네트워크 패널을 열고 전체 작업 동안 열어 두십시오. 파일을 선택하고, 변환하고, 시간을 재조정하고, 결과를 다운로드하세요. 페이지가 로드되면 페이지와 해당 스크립트에 대한 요청이 나타납니다. 표시되어서는 안 되는 것은 페이로드가 파일인 요청입니다. 단계 사이에 누락된 항목이 없도록 전체 세션에서 로그를 보존합니다.

두 가지 정직한 자격. 페이지는 다른 출처의 분석 또는 광고 스크립트를 로드할 수 있으며, 이는 동일한 패널에 표시되며 파일 전송 여부와 별도의 질문입니다. 그리고 속성은 탭에서 끝납니다. 로컬에서 처리하는 도구는 나중에 이메일을 보내거나 클라우드 저장소에 동기화하거나 다른 서비스에 붙여넣는 파일을 보호할 수 없습니다. 로컬 처리는 자신의 컴퓨터에 대한 노출을 줄입니다. 이후에는 파일을 따르지 않습니다.

요점: 파일, 탭, 디스크 — Subtitle Toolkit이 전체 작업을 로컬에서 수행하고 이를 확인할 수 있도록 하는 방법

경로는 파일 핸들, 메모리 내 텍스트, 메모리 내 큐, Blob, 다운로드이며 해당 시퀀스에서는 서버가 필요하지 않습니다. 파일은 페이지로 전송되는 대신 페이지에서 읽혀지고, 개체로 변환되고, 원본이 전체적으로 그대로 유지된 상태로 새 파일로 다시 작성됩니다.

기밀자료로 이것을 선호하는 이유는 약속을 했기 때문이 아니라 주장 내용을 1분 정도면 확인할 수 있기 때문입니다. 먼저 네트워크 패널을 열고 전체 작업을 수행한 후 로그를 읽어보세요. 로컬에서 처리하는 도구는 귀하의 성적표를 포함하는 요청이 없는 패널을 표시하며 이는 어떤 개인 정보 보호 정책보다 더 강력하게 보장됩니다.