SuperAPI AI 工具集

speckle-core-transport

数据与分析

查看项目

更新于 10-16 06:18

技能介绍

用途:该技能面向 Speckle 数据在客户端与服务器之间的传输,帮助选择传输方式、执行发送/接收并排查数据传递问题,同时规避 SQLite 锁错误、认证令牌过期等常见故障。

主要能力:提供四种传输的对比与决策依据。ServerTransport 通过 HTTP 与 Speckle Server 通信,适合协作共享;SQLiteTransport 使用本地 SQLite 数据库,是默认本地缓存,支持离线访问;MemoryTransport 使用内存字典,适合测试、临时管道与基准测试;DiskTransport 将每个对象存为独立文件,仅 C# 支持,适合项目本地存储与 git 跟踪。所有传输实现统一接口,序列化与存储解耦。

使用方式:Python 中通过 operations.send() 与 operations.receive() 管理生命周期,send 默认启用本地缓存(use_default_cache=True),receive 采用缓存优先策略,本地缺失时从远端批量下载缺失子对象并写入本地。ServerTransport 必须提供且仅提供一种认证路径:client、account 或 token+url。C# 使用 Operations.Send()/Receive(),支持异步、CancellationToken、进度回调与 blob 存储。

适用场景:协作发送/接收、离线缓存、单元测试、无服务器临时环境、项目本地文件存储。

限制:Python 的 ServerTransport.get_object() 未实现,会抛异常,应改用 operations.receive() 或 copy_object_and_children();use_default_cache=False 且传输列表为空会抛异常;MemoryTransport 不持久化;不要对大型 SQLiteTransport 调用 get_all_objects();未认证的 ServerTransport 所有操作都会失败;手动写入后需调用 end_write()。缓存按内容寻址、不可变,无内置垃圾回收,会单调增长。