メインコンテンツまでスキップ
バージョン: 0.5.0 (最新)

🔍 ファイルストレージスキーマブロック

ファイルストレージスキーマブロックは、NodeBlocks アプリケーションにおけるファイル管理データ検証のための JSON Schema 定義を提供します。これらのスキーマは、データ整合性を確保し、ファイルストレージ関連の API エンドポイントのための明確な契約を提供します。


🎯 概要

ファイルストレージスキーマブロックは次のことを目的として設計されています:

  • コンテンツタイプ検証で画像アップロードリクエストを検証する
  • ファイルサイズ制限と制約を処理する
  • MIME タイプ検証で複数の画像フォーマットをサポートする
  • 安全なファイル操作契約を提供する
  • 署名付き URL の適切なレスポンス構造を確保する

📋 ファイルストレージスキーマタイプ

画像アップロードスキーマ

コンテンツタイプとサイズ検証を含む画像アップロード操作のためのスキーマ。

レスポンススキーマ

署名付き URL を含むファイルストレージ操作レスポンスのためのスキーマ。


🔧 利用可能なファイルストレージスキーマ

getSignedImageUploadUrlSchema

画像をアップロードするための必須フィールドを含む画像アップロードスキーマ。

目的: 画像アップロード URL 生成リクエストを検証します

スキーマ詳細:

  • タイプ: OpenAPIOperation
  • パラメーター: コンテンツタイプとファイルサイズのクエリパラメータ
  • レスポンス: objectId と signedUrl を含むオブジェクト
  • コンテンツタイプ: サポートされている画像 MIME タイプのみ
  • ファイルサイズ制限: 最大 10MB

クエリパラメータ:

  • contentType: string(必須)- サポートされている画像 MIME タイプ
  • contentLength: integer(必須)- ファイルサイズ(バイト単位、最大 10MB)

サポートされている画像 MIME タイプ:

  • image/jpeg
  • image/png
  • image/webp
  • image/gif
  • image/svg+xml
  • image/avif
  • image/bmp
  • image/x-icon
  • image/tiff
  • image/heif
  • image/heic

レスポンス構造:

{
objectId: string; // クラウドストレージオブジェクトパス、例: 'bucket-name/object-key'
signedUrl: string; // オブジェクトにアクセスするための事前署名付き URL
}

使用例:

import { schemas } from '@nodeblocks/backend-sdk';

const { getSignedImageUploadUrlSchema } = schemas;

const imageUploadSchema = getSignedImageUploadUrlSchema({});
const validate = ajv.compile(imageUploadSchema.schemas as SchemaDefinition);
const isValid = validate({
contentType: 'image/jpeg',
contentLength: 1024000
});

リクエスト例:

GET /files/image/upload-url?contentType=image/jpeg&contentLength=1024000

レスポンス例:

{
"objectId": "bucket-name/object-key",
"signedUrl": "https://storage.googleapis.com/bucket-name/object-key?signature=..."
}

🔗 関連ドキュメント