🔍 ファイルストレージスキーマブロック
ファイルストレージスキーマブロックは、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=..."
}
🔗 関連ドキュメント
- ファイルストレージ概要 - ファイルストレージドメイン概要
- ファイルストレージブロック - ブロックドキュメント