日本語

データとスプレッドシート · CSV クリーナー

ブラウザーが Web ワーカー内の大きな CSV をアップロードせずにクリーンアップする方法

· 仕組み

csv ブラウザ処理 プライバシー

ローカルの CSV ファイルがブラウザー ワーカーに渡され、サーバーなしでダウンロードとして返されます。
オリジナル ToolAcre ベクトル イラスト

「アップロードなし」という言葉は、その仕組みを理解するまではマーケティングのように聞こえます。この投稿では、ブラウザーがローカルでファイルを読み取る方法、Web ワーカーがページの応答性を維持する理由、ファイル サイズの制限、何も送信されていないことを確認する方法について説明します。

大規模なエクスポートと Web ツール - ファイルに通常何が起こるか、そしてアップロードが技術的に必要ではない理由

Web ページ上のファイルの選択はアップロードに似ていますが、選択と送信は別のブラウザ操作です。 CSV Cleaner は、訪問者がファイル オブジェクトを選択した後にそれを受け取り、許可されたタイプと設定されたサイズを検証して、ページ内のそのテキストを読み取ります。区切り文字の検出や行のクリーンアップのためにアップロードは必要ありません。

正式な製品レコードは、行がデバイス上で解析されると述べていますが、ツール レコードは主張を絞り込んでいます。そのコードは、ファイル データ、貼り付けられたテキスト、または生成された出力を運ぶリクエストを行っていません。開示された分析スクリプト リクエストは別個のページ トラフィックであるため、プライバシー言語ではそれらを CSV 処理パスから区別する必要があります。

送信せずにファイルを読み取る — ブラウザーのファイル API がページにデバイス上のバイトへのアクセスを与える方法

実装は、アウトラインで指定された FileReader API ではなく `file.text()` を呼び出します。この Promise は、ページで使用できる JavaScript 文字列で解決されます。 JSON ファイルは別の変換ブランチを実行します。区切り文字で区切られたテキストは、オプションの区切り文字の選択とともにメッセージとしてワーカーに送信されます。

ローカルで読み取りを行っても、サイトにドライブへの一般的なアクセスは許可されません。このページは、ブラウザ コントロールを通じて選択されたファイルのみを受け取ります。最終的なダウンロードのベース名を保存し、現在のテーブルをタブ メモリに保持し、訪問者がリセットを要求するとその状態をクリアします。

ページは File.text() を使用して、アップロードせずに選択されたバイトを読み取ります

解析は、最初の呼び出しで遅延作成された Web ワーカーで実行されます。ワーカーは区切り文字を検出し、テストで使用されるのと同じステート マシンを通じて文字をスキャンし、完了したヘッダー、行、警告、および BOM フラグを返します。進行状況ラベルはこれらのステージの周囲に送信されるため、メイン インターフェイスは更新を続けることができます。

スキャンをオフロードすると、同期文字ループがメイン UI スレッドを独占するのを防ぎます。解析を無料にしたり、ストリーミングしたりするわけではありません。ソース テキストと返されたテーブルは依然としてメモリを占有します。ページ非表示の場合、クライアントは実行中の呼び出しを中止し、ワーカーを終了するため、バックグラウンドのタブに無期限に保持されることはありません。

アップロードの上限ではなくメモリが制限です — 上限がサーバーの割り当てではなくデバイスとブラウザに依存する理由

概要では、アップロードの上限ではなくメモリが制限であると述べられていましたが、出荷されたインターフェイスでは最大 50 MB が明示的に検証されています。そのしきい値は、構成の文章とパネル コードの両方にあります。デバイスとブラウザーのリソースは依然として理論上の最大値を下回る可能性がありますが、この記事では意図的な製品ガードを消去してはなりません。

また、リポジトリの証拠からは、普遍的な行の上限、メモリ乗数、または処理時間を提供することもできません。ファイルの内容によって、作成される文字列の数と長さが変わります。防御可能な期待は、制限された入力とワーカーの解析であり、訪問者のハードウェア全体で測定されたことのないパフォーマンスの数値ではありません。

インターフェイスは、デバイスの制約に加えて 50 MB ファイル制限を強制します

狭いアップロード禁止主張を検証するには、ページの読み込み後に開発者ツールを開き、ネットワーク リストをクリアし、無害な特徴的なサンプルを選択してクリーンアップを実行します。そのマーカーの新しいリクエスト URL、メソッド、および本文を検査します。 CSV ダウンロードは、変換エンドポイントへのリクエストではなく、ローカル ブラウザーのアクションとして表示される場合があります。

ソース検査は観察を補完します。ロード パスはファイル テキストを使用し、ワーカーはローカル パーサー コードをインポートし、downloadText が出力を作成します。実行時検査は、ソースだけでは見逃される可能性のある展開の追加を検出します。どちらもブラウザ拡張機能やオペレーティング システムが何を行うのかを証明するものではないため、結論の範囲は ToolAcre の処理パスに限定してください。

実用的な例 — ネットワーク パネルとメモリ使用量を監視しながら、メモリの少ないデバイスで予想されることを確認しながら、大規模なエクスポートをクリーニングする

文書化された制限を十分に下回って生成されたサンプルを使用します。進行状況を確認できる十分な行はありますが、顧客データは含まれていません。ワーカーのアクティビティを監視してプレビューし、空白のトリミングを適用してからダウンロードします。リクエストに一意のマーカーが含まれているかどうかを記録します。捏造されたメガバイト/秒やメモリのグラフを公開しないでください。

制約されたデバイスでは、利用可能なリソースが異なるという唯一の安全な予測があります。構成された制限により、より大きなファイルがこのパスに入ることが防止されますが、通常のブラウザーのメモリ負荷は依然として発生する可能性があります。テスト タブが不安定になった場合は、普遍的な回避策を約束するのではなく、他の作業を終了し、サンプルを減らして元の状態を保存してください。

実用的な例: メモリやタイミング数値を発明せずに無害なサンプルを検証する

ローカル クリーニングでは、以前に別のサービスに送信されたファイルを取り消すことはできません。また、サイズ ガードによって拒否された入力を処理することもできません。また、マシン上の拡張機能、クリップボード履歴、マルウェアからページを隔離することもありません。これらは、パーサーとワーカーの実装の外側にある明確な脅威境界です。

このツールはセッション中に最大 20 個のテーブル状態の取り消し履歴を保持しますが、これによりローカル メモリも消費されます。クリアするとテーブルとコントロールがリセットされます。ページを離れるとワーカーが中止され終了します。この動作は操作上の有用な詳細ですが、ブラウザまたはデバイスのメモリの安全な消去を保証するものではありません。

オンデバイス処理が確認可能 — ToolAcre CSV Cleaner がブラウザーでどのように実行され、ファイルをアップロードしないのか

完全に検証されたパスは、選択、`File.text()`、ワーカー解析、純粋な行変換、シリアル化、およびブラウザーのダウンロードです。設定では実際の 50 MB 入場制限を特定し、プライバシー ステートメントでは、開示された分析リクエストをスプレッドシートのコンテンツから明示的に分離します。それぞれの境界を検査できるため、スローガンよりも強力です。

導入の詳細が組織にとって重要な場合は常に、機密データを使用してネットワーク チェックを実行します。現在のソースと観察されたセッションからの証拠は、正確な主張を裏付けています。ToolAcre の CSV オペレーションにはアップロード エンドポイントがなく、テーブル コンテンツも送信されません。 Precision は、ブラウザ全体がオフラインであるかのように見せることなく、ステートメントを有用な状態に保ちます。