Encore项目v1.46.0版本发布:存储对象签名URL与本地仪表盘增强
项目简介
Encore是一个现代化的后端开发框架,它通过抽象基础设施的复杂性,让开发者能够专注于业务逻辑的实现。Encore提供了自动化的API生成、数据库管理、分布式追踪等功能,极大地简化了云原生应用的开发流程。
存储对象签名URL功能
在v1.46.0版本中,Encore引入了一项备受期待的功能——存储对象签名URL。这项功能为开发者提供了更灵活、更安全的文件传输方案。
签名上传URL
开发者现在可以生成有时效性的签名URL,允许客户端直接上传文件到对象存储,而无需经过后端服务中转。这不仅减轻了API服务的负载,还利用了云存储服务的高效传输能力。
// 生成一个有效期为2小时的签名上传URL
const uploadUrl = await profilePictures.signedUploadUrl("user-id", {ttl: 7200})
客户端可以使用这个URL直接上传文件,例如通过curl命令:
curl -X PUT --data-binary @local-file.jpg "https://storage.googleapis.com/bucket-name/object-id?signature=..."
签名下载URL
对于私有存储桶中的对象,现在也可以生成签名下载URL,允许特定客户端在有限时间内访问这些资源。这在需要临时分享私有文件的场景下特别有用。
本地开发仪表盘增强
v1.46.0版本显著改进了本地开发体验,新增了基础设施仪表盘功能。
基础设施可视化
开发者现在可以在本地开发环境中直观地查看所有运行中的基础设施组件。这包括数据库实例、消息队列、定时任务等,帮助开发者快速验证本地环境的配置是否正确。
定时任务管理
新版本特别强化了对Cron Jobs的支持,开发者可以直接从仪表盘界面手动触发定时任务,大大简化了开发和测试流程。
追踪查看器改进
Encore的分布式追踪系统也获得了重要更新,新增了事件详情展示功能。
事件详情面板
在复杂的调用链路追踪中,开发者现在可以点击时间线上的任意事件,查看该事件的详细信息。这个改进使得分析包含多个事件的复杂调用链变得更加容易。
技术实现细节
-
签名URL安全性:Encore使用HMAC-SHA256算法生成签名,确保URL不能被篡改。每个签名包含过期时间、操作权限和资源路径等信息。
-
本地基础设施模拟:Encore的本地运行时环境现在完整模拟了云环境中的基础设施组件,包括它们的元数据和状态信息。
-
追踪事件优化:追踪系统现在会记录更详细的事件元数据,并在UI中智能分组相关事件,提高可读性。
升级建议
对于现有项目,建议通过以下命令升级Encore工具链:
encore version update
新功能特别是签名URL功能,需要更新相关SDK才能使用。建议开发者在升级后检查是否有API变更影响现有代码。
未来展望
根据Encore团队的规划,未来版本将继续增强本地开发仪表盘的功能,特别是数据库管理方面的工具。社区用户可以通过官方渠道提出功能建议,共同参与框架的演进。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0216
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0138
uni-appA cross-platform framework using Vue.jsJavaScript08
GLM-5.2智谱开源 GLM-5.2,这是针对长文本任务的最新旗舰模型。相较于前代产品 GLM-5.1,它在长文本任务处理能力上实现了显著飞跃,并且首次在稳定的 100 万 token 上下文中提供这一能力。Jinja00
SwanLab⚡️SwanLab - an open-source, modern-design AI training tracking and visualization tool. Supports Cloud / Self-hosted use. Integrated with PyTorch / Transformers / LLaMA Factory / veRL/ Swift / Ultralytics / MMEngine / Keras etc.Python00
tiny-universe《大模型白盒子构建指南》:一个全手搓的Tiny-UniverseJupyter Notebook03