操作
バグ #510
未完了詳細ファイル処理仕様
ステータス:
新規
優先度:
高め
担当者:
-
開始日:
2025-06-11
期日:
進捗率:
0%
予定工数:
説明
概要¶
レジュメ変換システムのファイル処理仕様を詳細に定義します。サポートするファイル形式、サイズ制限、特殊ケース対応、処理フローなどを明確に規定します。
作業内容¶
-
サポートファイル形式の詳細定義
- PDF
- サポートバージョン: PDF 1.3〜2.0
- サポート機能: テキストレイヤー、フォント埋め込み、画像
- 非サポート機能: フォーム、3Dオブジェクト、JavaScript
- DOCX
- サポートバージョン: Office 2007以降のDOCX形式
- サポート機能: テキスト、表、リスト、基本書式
- 非サポート機能: マクロ、ActiveX、OLE埋め込み
- PDF
-
ファイルサイズ制限と検証
- 最大ファイルサイズ: 10MB
- フロントエンドでの事前検証
const validateFile = (file: File): { valid: boolean; error?: string } => { // サイズ検証 if (file.size > 10 * 1024 * 1024) { return { valid: false, error: 'ファイルサイズは10MB以下にしてください' }; } // 形式検証 const validTypes = [ 'application/pdf', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' ]; if (!validTypes.includes(file.type)) { return { valid: false, error: 'PDFまたはDOCX形式のファイルをアップロードしてください' }; } return { valid: true }; };
- バックエンドでの再検証
- ウイルス/マルウェアスキャン
-
特殊ケース対応の詳細化
- スキャン画像のみのPDF
- OCR処理の統合
- OCR精度の限界と対応
- ユーザーへの通知
- パスワード保護されたファイル
- 検出方法
- ユーザーへのパスワード要求UI
- セキュアなパスワード処理
- 破損ファイル
- 破損検出方法
- 部分的に読み取り可能な場合の対応
- 完全に破損している場合の対応
- スキャン画像のみのPDF
-
ファイル処理フローの詳細化
1. フロントエンドでの事前検証 2. マルチパートアップロード開始 3. アップロード進捗表示 4. バックエンドでのファイル受信 5. ファイル検証(サイズ、形式、破損) 6. 一時ストレージへの保存 7. メタデータのDB保存 8. ファイルタイプに応じた処理分岐 a. PDF処理フロー i. PDF.jsでのパース ii. ページ単位の処理 iii. テキスト抽出 b. DOCX処理フロー i. Mammoth.jsでのパース ii. HTML中間形式への変換 iii. テキスト抽出 9. 抽出テキストの前処理 10. 処理結果の保存 11. ファイルプレビューの生成 12. 一時ファイルのクリーンアップ
-
セキュリティ対策の詳細化
- ファイル拡張子とMIMEタイプの検証
- ファイル内容の実際の検証
- ウイルス/マルウェアスキャン
- サンドボックス処理
- アクセス制御
- ストレージ暗号化
成果物¶
- ファイル形式対応仕様書
- ファイルサイズ制限仕様
- 特殊ケース対応仕様
- ファイル処理フロー図
- セキュリティ対策仕様書
技術スタック¶
- PDF.js
- Mammoth.js
- Multer(ファイルアップロード)
- ClamAV(マルウェアスキャン)
- Node.js fs/fs-extra
参照¶
表示するデータがありません
操作