mcpField
F
file-upload-handling

file-upload-handling

github.com/aj-geddes開発373480 回インストール34 週間前に更新
リポジトリ

file-upload-handling について

さまざまなバックエンドフレームワークで安全なファイルアップロードを設計する開発者向けスキルです。検証、スキャン、保存、配信を扱い、複数の実装例を参照できます。

主な機能

  1. 01ファイル形式とサイズの検証
  2. 02ファイル名のサニタイズ
  3. 03ウイルススキャンの指針
  4. 04保存とアクセス制御
  5. 05CDN 配信と署名付き URL
  6. 06バックエンドとクラウドの参考例

活用シーン

  1. 01アプリへのアップロード機能追加
  2. 02ユーザードキュメントの管理
  3. 03メディアファイルの配信
  4. 04一括インポートの構築

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill file-upload-handling

インストール後、Claude Code で/file-upload-handlingを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
fastapi-file-upload.md
nodejs-express-file-upload-with-multer.md
pythonflask-file-upload.md
s3cloud-storage-integration.md
scripts/
validate-pipeline.sh
templates/
pipeline.yaml

詳細

ファイルアップロードの処理

目次

概要

さまざまなバックエンドフレームワークで、検証、サニタイズ、ウイルススキャン、効率的なストレージ管理、CDN 連携、適切なファイル配信の仕組みを備えた、安全で堅牢なファイルアップロードシステムを構築します。

使用する場面

  • ファイルアップロード機能を実装する場合
  • ユーザーがアップロードしたドキュメントを管理する場合
  • メディアファイルを保存、配信する場合
  • プロフィール画像のアップロードを実装する場合
  • ドキュメント管理システムを構築する場合
  • ファイルの一括インポートを処理する場合

クイックスタート

最小限の動作例:

# config.py
import os

class Config:
    MAX_CONTENT_LENGTH = 50 * 1024 * 1024  # 50 MB
    UPLOAD_FOLDER = 'uploads'
    ALLOWED_EXTENSIONS = {'txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif', 'docx', 'doc'}
    UPLOAD_DIRECTORY = os.path.join(os.path.dirname(__file__), UPLOAD_FOLDER)

# file_service.py
import os
import mimetypes
import hashlib
import secrets
from werkzeug.utils import secure_filename
from datetime import datetime
import magic
import aiofiles

class FileUploadService:
    def __init__(self, upload_dir, allowed_extensions, max_size=50*1024*1024):
        self.upload_dir = upload_dir
        self.allowed_extensions = allowed_extensions
        self.max_size = max_size
        self.mime = magic.Magic(mime=True)
// ... (see reference guides for full implementation)

リファレンスガイド

詳細な実装は references/ ディレクトリにあります:

ガイド内容
Python/Flask File UploadPython/Flask のファイルアップロード
Node.js Express File Upload with MulterMulter を使用した Node.js Express のファイルアップロード
FastAPI File UploadFastAPI のファイルアップロード
S3/Cloud Storage IntegrationS3/クラウドストレージ連携

ベストプラクティス

✅ 推奨事項
  • ファイル拡張子と MIME タイプを検証する
  • 処理前にファイルサイズを確認する
  • ディレクトリトラバーサルを防ぐため、安全なファイル名を使用する
  • Web ルートの外にファイルを保存する
  • ウイルススキャンを実装する
  • ファイル配信に CDN を使用する
  • 直接アクセス用の署名付き URL を生成する
  • ファイルのアップロード/ダウンロードイベントを記録する
  • アクセス制御チェックを実装する
  • 一時ファイルを削除する
❌ 禁止事項
  • ユーザーが指定したファイル名を信用する
  • Web からアクセス可能なディレクトリにファイルを保存する
  • 任意のファイル形式を許可する
  • アップロードされたファイルのウイルススキャンを省略する
  • 絶対ファイルパスを公開する
  • ファイルサイズを無制限に許可する
  • アクセス制御を無視する
  • 予測可能なファイルパスを使用する
  • 機密性の高いメタデータをファイル名に保存する
  • ファイルの内容の検証を忘れる

コメント