目录

Volcengine TLS Producer SDK

本仓库提供面向 Apple 平台的 Volcengine TLS 异步日志上传 Producer,当前版本为 v2.0.1,提供 Swift 和 Objective-C 接口。支持 iOS、iPadOS 和原生 macOS,提供批处理、压缩、重试、背压和可选 WAL。

旧版 v1.x Objective-C 客户端的使用入口和迁移边界见 v1.x 到 v2.0.x 迁移说明

Producer v2 最低支持 iOS 13、Intel Mac 的 macOS 10.15 和 Apple Silicon Mac 的 macOS 11,要求 Swift 5.8+。

安装 Producer v2

Swift Package Manager:

.package(
    url: "https://github.com/volcengine/ve-tls-ios-sdk.git",
    from: "2.0.1"
)

VolcengineTLSProducer product 添加到 App 或 executable target。

CocoaPods:

pod 'VolcengineTLSProducer', '~> 2.0.1'

完整步骤见安装

快速开始

以下示例假设业务方的安全凭据提供器已返回 runtimeCredentials。长期凭据硬编码到客户端会扩大 泄漏面,生产环境推荐使用临时凭证。

import Foundation
import VolcengineTLSProducer

let destination = Destination(
    endpoint: "https://tls-cn-beijing.volces.com",
    region: "cn-beijing",
    projectID: "YOUR_PROJECT_ID",
    topicID: "YOUR_TOPIC_ID"
)

let producer = try await Producer.open(
    configuration: try ProducerConfiguration(destination: destination),
    credentials: Credentials(
        accessKeyID: runtimeCredentials.accessKeyID,
        accessKeySecret: runtimeCredentials.accessKeySecret,
        securityToken: runtimeCredentials.sessionToken
    )
) { result in
    print(result.status, result.requestID ?? "-")
}

try producer.add(LogEvent(contents: [
    "event_id": .string(UUID().uuidString),
    "message": .string("hello tls")
]))

try await producer.close(timeout: 5)

add 成功只表示日志到达本地接收边界;远端结果通过 SendResult 回调返回。生产环境应使用 临时凭证,并根据业务可靠性要求选择持久化模式。

文档

完整 iOS 示例见 SwiftExample,版本变化见 CHANGELOG。v1.x 与 v2.0.x 的选择和迁移见 迁移说明

SDK 开发与回归测试见贡献指南

License

Apache License 2.0

邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号