Tags: qiniu/go-sdk
Tags
fix(storagev2): cap resolver cache refresh to prevent indefinite IP p… ( #199) * fix(storagev2): cap resolver cache refresh to prevent indefinite IP pinning FeedbackGood was resetting RefreshAfter on every successful request, preventing DNS changes from taking effect. Add CacheMaxLifetime (default 6h) to bound how long FeedbackGood can extend RefreshAfter, ensuring stale IPs are eventually refreshed via async DNS re-resolution. * feat(storagev2): add NewEmptyResolver to disable SDK DNS resolution Provide NewEmptyResolver() as a convenient way to bypass SDK's built-in DNS resolution, falling back to Go's standard net.Dialer DNS. Also adjust CacheMaxLifetime default from 6h to 30min. * fix(storagev2): fix concurrent downloader progress race condition 并发下载完成路径的 partDownloaded + totalDownloaded + 用户回调未被 downloadingProgressMutex 保护,多个 goroutine 同时完成时回调顺序 可能导致进度值非单调递增 * change apo-specs * version to 7.26.5 --------- Co-authored-by: YangSen-qn <yangsen@qiniu.com>
feat(sandbox): add Keepalive-Ping-Interval header to gRPC streaming r… …equests (#193) * feat(sandbox): add Keepalive-Ping-Interval header to gRPC streaming requests Without this header, envd server doesn't send keepalive pings on gRPC streams, causing proxies/LBs to silently drop idle connections. This aligns with the JS SDK behavior (KEEPALIVE_PING_INTERVAL_SEC = 50). - Add keepaliveInterceptor (ConnectRPC interceptor) for streaming clients - Inject header in processClient() shared by Commands and Pty - Add TestKeepaliveHeaderInjected to verify through full Sandbox.Pty() path * fix(sandbox): address code review feedback on keepalive PR - Add //go:build unit tag to envd_rpc_test.go per AGENTS.md convention - Check handle.Wait() error instead of discarding it - Add TestKeepaliveHeaderInjectedCommands covering Commands.Start() path * chore: version to v7.26.3
PreviousNext