mirror of
https://github.com/langgenius/dify.git
synced 2026-05-13 08:57:28 +08:00
Introduce app_asset_contents table as a read-through cache over S3 for text-like asset files (e.g. .md skill documents). This eliminates N individual S3 fetches during SkillBuilder builds — bulk_load pulls all content in a single SQL query with S3 fallback on miss. Key components: - CachedContentAccessor: DB-first read / dual-write / S3 fallback - AssetContentService: static DB operations (get, get_many, upsert, delete) - should_mirror(): single source of truth for extension-based policy - Alembic migration for app_asset_contents table Modified callers: - SkillBuilder uses accessor.bulk_load() instead of per-node S3 reads - AppAssetService.get/update_file_content route through accessor - delete_node cleans both DB cache and S3 - draft_app_assets_initializer uses should_mirror() instead of hardcoded .md |
||
|---|---|---|
| .. | ||
| bash | ||
| entities | ||
| initializer | ||
| inspector | ||
| services | ||
| storage | ||
| utils | ||
| __init__.py | ||
| builder.py | ||
| manager.py | ||
| sandbox.py | ||