圧縮SDK集成指南:Python/Java/C#多语言调用

結論先行:SmartSlim SDK を通じて標準C ABI导出动态库,サポートPython/Java/C#/Rust四種類语言集成,核心调用フロー分四步——初始化SDK、作成圧縮設定、执行圧縮、释放リソース。单ファイル圧縮100MB PDF耗时约0.8秒,授权検証延迟低于5ms。本文に出三種類语言的完整集成コード例、APIパラメータ表和性能调优ソリューション,附バッチ量圧縮Demo。以下ではSDK架构から説明し,逐一詳解各语言的集成方法。

如果你需要を通じてHTTP接口调用圧縮サービス而非SDK集成,まず圧縮API调用実戦:RESTful接口文档詳解

一、SDK架构与集成原理

SmartSlim SDK 的底层是 Rust 圧縮引擎,を通じて標準C ABI(Application Binary Interface)导出である动态库(.so/.dylib/.dll),任何サポートFFI(外部函数接口)的语言都可以読み込み并调用。この種類架构的好处是:一次用Rust编写核心引擎,多语言复用同一套二进制库,无需各语言重复実現圧縮逻辑。

グループ件技術作用输出物
圧縮引擎核心Rust执行圧縮アルゴリズム静态库.a/.lib
ABI导出层Rust #[no_mangle]导出C兼容函数动态库.so/.dylib/.dll
语言绑定层各语言FFI封装原生调用各语言包/库
授权模ブロックRust + 加密検証授权密钥内嵌于动态库
設定管理Rust struct圧縮パラメータ管理JSON/TOML設定

SDK提供6平台预编译库,覆盖主流操作システム和CPU架构,开箱即用无需自行编译Rustコード。

平台动态库操作システムCPU架构適用シナリオ
linux-x64libsmartslim.soLinuxx86_64サービス器/桌面
linux-arm64libsmartslim.soLinuxaarch64ARMサービス器/树莓派
macos-universallibsmartslim.dylibmacOSx86_64+arm64Intel+Apple Silicon
windows-x64smartslim.dllWindowsx86_64Windows桌面/サービス器
linux-server-x64libsmartslim.soLinuxx86_64サービス器最適化版
linux-server-arm64libsmartslim.soLinuxaarch64ARMサービス器最適化版

二、核心APIパラメータ詳解

SDK的核心API分である初始化、設定、圧縮、释放四类。下表列出主なAPI函数及其パラメータ説明。

API函数パラメータ返回值説明
smartslim_initlicense_key: Stringhandle: Handle初始化SDK,検証授权
smartslim_create_configformat, level, qualityconfig: ConfigHandle作成圧縮設定
smartslim_compresshandle, input, output, configresult: ResultCode执行单ファイル圧縮
smartslim_compress_batchhandle, files[], config, workersresults[]: ResultCodeバッチ量圧縮(多并发)
smartslim_get_infohandle, filepathFileInfo: struct获取ファイル圧縮信息
smartslim_free_configconfig: ConfigHandlevoid释放設定リソース
smartslim_freehandle: Handlevoid释放SDK実例

圧縮設定パラメータサポート4级圧縮(low/medium/high/ultra)x 15シナリオ x 5档性能(ultrafast/fast/balanced/quality/optimal),共300種類グループ合,覆盖几乎所有圧縮要件。

パラメータ可选值デフォルト值説明
formatpdf/image/video/office/ofd自動检测ファイルタイプ
levellow/medium/high/ultramedium圧縮レベル
quality1-10075品質因子(画像/PDF)
performanceultrafast/fast/balanced/quality/optimalbalanced性能プリセット
workers1-164并发线程数
securityDISABLED/LOW/MEDIUM/HIGH/MAXIMUMMEDIUM安全レベル

三、三種類语言集成コード例

下面に出Python、Java、C#三種類语言的完整集成例,均以圧縮单つPDFファイルである例。

1. Python集成(ctypes)

Pythonを通じてctypes模ブロック読み込み动态库并调用导出函数。以下コード実現初始化SDK、作成設定、圧縮PDF、释放リソース的完整フロー。100MB PDF圧縮耗时约0.8秒。

ステップPythonコード説明
1.読み込み库lib = ctypes.CDLL('./libsmartslim.so')読み込み动态库
2.初始化handle = lib.smartslim_init(b"YOUR_LICENSE")传入授权密钥
3.作成設定config = lib.smartslim_create_config(b"pdf", b"medium", 75)PDF/medium/q75
4.执行圧縮lib.smartslim_compress(handle, b"in.pdf", b"out.pdf", config)圧縮ファイル
5.释放リソースlib.smartslim_free_config(config); lib.smartslim_free(handle)释放内存

2. Java集成(JNI)

Javaを通じてJNI(Java Native Interface)调用动态库。需要先编写native方法声明,然后読み込み库ファイル。以下コード展示核心调用フロー,適したSpring Boot等Java后端項目目集成。

ステップJavaコード説明
1.読み込み库System.loadLibrary("smartslim")読み込みDLL/SO
2.声明方法native long smartslim_init(String key)JNI方法声明
3.初始化long handle = smartslim_init("YOUR_LICENSE")获取実例句柄
4.作成設定long config = smartslim_create_config("pdf","medium",75)設定パラメータ
5.执行圧縮smartslim_compress(handle, "in.pdf", "out.pdf", config)圧縮ファイル
6.释放リソースsmartslim_free_config(config); smartslim_free(handle)释放内存

3. C#集成(P-Invoke)

C#を通じてP/Invoke(Platform Invocation Services)调用动态库。使用DllImport特性声明外部函数,適した.NET/.NET Core項目目集成。以下コード适配Windows和Linux双平台。

ステップC#コード説明
1.声明函数[DllImport("smartslim")] static extern IntPtr smartslim_init(string key)P-Invoke声明
2.初始化IntPtr handle = smartslim_init("YOUR_LICENSE")获取句柄
3.作成設定IntPtr config = smartslim_create_config("pdf","medium",75)設定パラメータ
4.执行圧縮smartslim_compress(handle, "in.pdf", "out.pdf", config)圧縮ファイル
5.释放リソースsmartslim_free_config(config); smartslim_free(handle)释放内存

四、性能调优与バッチ量圧縮

SDK集成的性能调优主な围绕并发、内存和バッチ処理三つ维度。下の表に示す不同调优戦略的効果比較。

调优戦略单ファイル耗时100ファイル总耗时内存占用適用授权
单线程串行0.8秒80秒50MBTrial(并发1)
4线程并发0.8秒22秒180MBStandard(并发4)
8线程并发0.8秒12秒320MBProfessional(并发8)
16线程并发0.8秒7秒600MBEnterprise(并发16+)
流式圧縮模式1.2秒95秒15MB所有授权

バッチ量圧縮推奨使用SDK内置的smartslim_compress_batch接口,传入ファイル列表和并发数,SDK内部用Rust异步任务调度,比各语言自行実現多线程更高效。以下是一つバッチ量圧縮100つPDFファイル的Demo性能データ。

ファイル数量单ファイル平均总サイズ圧縮後サイズ8并发耗时圧縮率
100つPDF15MB1.5GB320MB12秒78.7%
100つPNG8MB800MB180MB8秒77.5%
100つDOCX5MB500MB120MB6秒76.0%
100つMP450MB5GB1.8GB45秒64.0%

如果你需要理解Rust圧縮库的底层アルゴリズム比較,を参照してくださいRust圧縮库比較:である什么選択Rust写圧縮引擎。如果你需要を圧縮サービスを通じてDocker容器化デプロイ,を参照してくださいDockerデプロイ圧縮サービス

五、よくある質問FAQ

Q1:圧縮SDKサポート哪些编程语言?

SmartSlim SDK を通じて標準C ABI导出动态库,サポートPython(ctypes)、Java(JNI)、C#(P-Invoke)、Rust(FFI)四種類语言集成。SDK提供6平台预编译库(linux-x64/arm64、macos-universal、windows-x64等),开箱即用无需编译。其他サポートC ABI调用的语言(如Go、Node.js、PHP)也可を通じて各自的FFI机制集成。

Q2:圧縮SDK的API调用フロー是什么?

標準调用フロー分四步:1.调用smartslim_init初始化SDK并传入授权密钥;2.调用smartslim_create_config作成圧縮設定(指定形式、レベル、性能プリセット);3.调用smartslim_compress执行圧縮(传入输入ファイル路径和输出路径);4.调用smartslim_free释放リソース。单ファイル圧縮100MB PDF耗时约0.8秒,授权検証延迟低于5ms。

Q3:圧縮SDK怎么実現バッチ量圧縮?

バッチ量圧縮有2種類方式:一是循环调用单ファイル圧縮接口,配合多线程并发(Python用concurrent.futures、Java用ThreadPoolExecutor);二是使用SDK内置的バッチ量圧縮接口smartslim_compress_batch,传入ファイル列表和并发数,SDK内部用Rust异步任务调度。推奨第二種類方式,Standard授权サポート4并发,Professionalサポート8并发,Enterpriseサポート16并发以上。

Q4:圧縮SDK集成报错怎么办?

一般的的报错及解决ソリューション:1.UnsatisfiedLinkError(Java)或DLL読み込み失败——確認动态库路径和システム架构是否匹配;2.授权検証失败——確認授权密钥是否正しい、是否过期;3.内存溢出——调低并发数或启用流式圧縮模式;4.形式不サポート——確認SDK版本是否サポート目標形式。推奨开启DEBUG日志定位問題,或联系智压通技術サポート。

まとめ

SmartSlim SDK を通じて標準C ABI実現了一次编写、多语言调用,サポートPython/Java/C#/Rust四種類语言集成。核心调用フロー四步走:初始化、作成設定、执行圧縮、释放リソース。单ファイル圧縮100MB PDF耗时0.8秒,バッチ量圧縮100つファイル8并发仅需12秒。性能调优三维度:并发(4–16线程)、内存(流式模式低下75%占用)、バッチ処理(内置batch接口)。

覚えておくべき3つのポイント:一是選択与システム架构匹配的预编译库(6平台全覆盖);二是バッチ量圧縮优先用内置batch接口而非自行多线程;三是生产环境推奨Professional以上授权(8并发),兼顾性能和コスト。如果你更倾向HTTP接口调用而非SDK集成,を参照してください圧縮API调用実戦。

ファイルを圧縮してみませんか?SmartSlimを試す

独自開発のRust圧縮エンジンに基づき、PDF/画像/動画/Office/OFDなど10分野40以上の形式に対応。ローカル圧縮でデータは外部に送信されません。