dify/api/extensions
Luyu Zhang acd6942d21 feat(storage): redirect signed file previews to S3 public base URL
Add an optional S3_PUBLIC_BASE_URL setting that, when configured, lets
file controllers 302-redirect signed previews to the object store / CDN
instead of streaming bytes through the Dify API. Works with any
S3-compatible backend exposing a public domain (Cloudflare R2 custom
domain, MinIO public endpoint, Aliyun OSS public domain, etc.) so that
egress and request handling for images, attachments, tool outputs, and
webapp logos no longer go through the API container.

Signature verification is preserved: the API still validates the HMAC
before issuing the redirect. When S3_PUBLIC_BASE_URL is unset the
behavior is unchanged.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 17:12:00 -07:00
..
logstore chore: reorg imports (#35308) 2026-04-16 08:50:02 +00:00
otel chore: reorg imports (#35308) 2026-04-16 08:50:02 +00:00
storage feat(storage): redirect signed file previews to S3 public base URL 2026-04-28 17:12:00 -07:00
__init__.py feat: mypy for all type check (#10921) 2024-12-24 18:38:51 +08:00
ext_app_metrics.py Removes the 'extensions' directory from pyrightconfig.json and fixes … (#26512) 2025-10-05 15:57:42 +09:00
ext_blueprints.py fix: allow unauthenticated CORS preflight for embedded bots (#30587) 2026-01-06 11:40:34 +08:00
ext_celery.py feat: support configurable redis key prefix (#35139) 2026-04-14 09:31:41 +00:00
ext_code_based_extension.py refactor: assembling the app features in modular way (#9129) 2024-11-30 23:05:22 +08:00
ext_commands.py feat: add export app messages (#32990) 2026-03-07 11:27:15 +08:00
ext_compress.py rm type ignore (#25715) 2025-10-21 11:26:58 +08:00
ext_database.py fix: fix db env not work (#30541) 2026-01-05 11:10:45 +08:00
ext_enterprise_telemetry.py feat: enterprise otel exporter (#33138) 2026-03-27 07:56:31 +00:00
ext_fastopenapi.py refactor(api): tighten phase 1 shared type contracts (#33453) 2026-03-17 17:50:51 +08:00
ext_forward_refs.py feat(api): automatically NODE_TYPE_CLASSES_MAPPING generation from node class definitions (#28525) 2025-12-01 14:14:19 +08:00
ext_hosting_provider.py refactor: assembling the app features in modular way (#9129) 2024-11-30 23:05:22 +08:00
ext_import_modules.py Removes the 'extensions' directory from pyrightconfig.json and fixes … (#26512) 2025-10-05 15:57:42 +09:00
ext_logging.py feat(refactoring): Support Structured Logging (JSON) (#30170) 2026-01-04 11:46:46 +08:00
ext_login.py refactor(api): tighten login and wrapper typing (#34447) 2026-04-02 09:36:58 +00:00
ext_logstore.py fix(logstore): prevent SQL injection, fix serialization issues, and optimize initialization (#30697) 2026-01-14 10:21:26 +08:00
ext_mail.py chore: add ast-grep rule to convert Optional[T] to T | None (#25560) 2025-09-15 13:06:33 +08:00
ext_migrate.py rm type ignore (#25715) 2025-10-21 11:26:58 +08:00
ext_orjson.py remove bare list, dict, Sequence, None, Any (#25058) 2025-09-06 03:32:23 +08:00
ext_otel.py feat: enterprise otel exporter (#33138) 2026-03-27 07:56:31 +00:00
ext_proxy_fix.py rm type ignore (#25715) 2025-10-21 11:26:58 +08:00
ext_redis.py feat: support configurable redis key prefix (#35139) 2026-04-14 09:31:41 +00:00
ext_request_logging.py feat: add x-trace-id to http responses and logs (#29015) 2025-12-02 17:22:34 +08:00
ext_sentry.py chore: reorg imports (#35308) 2026-04-16 08:50:02 +00:00
ext_session_factory.py refactor: admin api using session factory (#29628) 2025-12-15 12:01:41 +08:00
ext_set_secretkey.py refactor: assembling the app features in modular way (#9129) 2024-11-30 23:05:22 +08:00
ext_socketio.py feat: collaboration (#30781) 2026-04-16 02:21:04 +00:00
ext_storage.py feat(storage): redirect signed file previews to S3 public base URL 2026-04-28 17:12:00 -07:00
ext_timezone.py refactor: assembling the app features in modular way (#9129) 2024-11-30 23:05:22 +08:00
ext_warnings.py refactor: assembling the app features in modular way (#9129) 2024-11-30 23:05:22 +08:00
redis_names.py feat: support configurable redis key prefix (#35139) 2026-04-14 09:31:41 +00:00