圧縮API调用実戦:RESTful接口文档詳解

結論先行:SmartSlim Server 提供RESTful API,含むアップロード圧縮、バッチ量圧縮、状态查询、回调通知4大接口,サポートAPI Key和Bearer Token2種類认证方式。单ファイルアップロード圧縮100MB PDF约8秒完成,バッチ量圧縮100つファイル约12秒。デフォルト限流每分钟60次请求,エンタープライズ版可向上至300次。本文に出4大接口的パラメータ詳解表、Python/JavaScript/curl调用例和エラー処理ソリューション。以下ではAPI总览から説明し,逐一詳解各接口。

如果你需要を通じてSDKローカル集成而非HTTP API调用,まず圧縮SDK集成指南:Python/Java/C#多语言调用

一、API接口总览

SmartSlim Server 的RESTful API基于FastAPI框架開発,所有接口返回JSON形式データ,サポートmultipart/form-dataファイルアップロード。API基础路径である/api/v1/,所有请求必须携带认证信息。

接口方法路径機能同步/异步
アップロード圧縮POST/api/v1/compressアップロード单ファイル并圧縮同步(50MB以下)/异步
バッチ量圧縮POST/api/v1/compress/batchバッチ量アップロード多ファイル圧縮异步
状态查询GET/api/v1/status/{task_id}查询圧縮任务状态同步
回调通知POST客户端回调URL圧縮完成后主动通知异步推送

认证方式分2種類:API Key认证適したサービス端调用,Bearer Token认证適した前端调用。下表比較2種類认证方式的特点。

认证方式请求头有效期適用シナリオ安全性
API KeyX-API-Key: your-key永久(可吊销)サービス端调用中(需HTTPS)
Bearer TokenAuthorization: Bearer token24小时前端调用高(短期有效)

二、各接口パラメータ詳解

1. アップロード圧縮接口

アップロード圧縮接口接收单つファイル,返回圧縮結果。50MB以下ファイル同步返回圧縮后的ダウンロード链接,50MB以上异步返回任务ID。

パラメータタイプ必填デフォルト值説明
filemultipart/file-待圧縮ファイル
formatstring自動检测ファイルタイプ(pdf/image/ofd)
levelstringmedium圧縮レベル(low/medium/high/ultra)
qualityinteger75品質因子(1-100)
callback_urlstring-异步回调通知URL

2. バッチ量圧縮接口

バッチ量圧縮接口接收多つファイル,异步処理,返回バッチ量任务ID。サポート指定并发数,最大并发受授权制限。

パラメータタイプ必填デフォルト值説明
filesmultipart/file[]-待圧縮ファイル列表(最多100つ)
levelstringmedium圧縮レベル
qualityinteger75品質因子
workersinteger4并发数(1-16)
callback_urlstring-完成回调URL

3. 状态查询接口

状态查询接口を通じて任务ID查询异步圧縮任务的当前状态和結果。

返回字段タイプ説明
task_idstring任务唯一标识
statusstring状态(pending/processing/completed/failed)
progressinteger进度百分比(0-100)
download_urlstring圧縮結果ダウンロード链接(完成后)
original_sizeinteger元ファイル大小(字节)
compressed_sizeinteger圧縮后大小(字节)
errorstringエラー信息(失败时)

三、三種類语言调用例

下面に出curl、Python、JavaScript三種類语言的调用例,均以アップロード圧縮单つPDFファイルである例。

语言核心コード説明
curlcurl -X POST -H "X-API-Key: key" -F "file=@doc.pdf" -F "level=medium" http://localhost:8000/api/v1/compress命令行调用
Pythonrequests.post(url, headers={"X-API-Key":key}, files={"file":open("doc.pdf","rb")}, data={"level":"medium"})requests库
JavaScriptfetch(url, {method:"POST", headers:{"X-API-Key":key}, body:formData})Fetch API

四、限流与エラー処理

API有完善的限流和エラー処理机制。理解HTTP状态码和エラー码,才能写出健壮的调用コード。

HTTP状态码エラー码含义処理推奨
200-成功解析响应データ
400INVALID_PARAMパラメータエラー確認请求パラメータ
401UNAUTHORIZED认证失败確認API Key/Token
413FILE_TOO_LARGEファイル超限使用分ブロックアップロード
429RATE_LIMITED请求过频指数退避重试
500INTERNAL_ERRORサービス器エラー重试或联系サポート
503SERVICE_UNAVAILABLEサービス不可用等待后重试

限流戦略詳細:デフォルト每分钟60次请求、每秒10次并发,エンタープライズ版每分钟300次、每秒30并发。超过制限返回429,响应头含むX-RateLimit-Remaining(剩余次数)和X-RateLimit-Reset(重置時間戳)。推奨客户端実現指数退避重试:收到429后等待1秒重试,再失败等2秒,再失败等4秒,最多重试3次。

ファイルタイプ元大小圧縮后大小圧縮耗时圧縮率
PDF(扫描件)80MB8.2MB6.5秒89.8%
PDF(电子版)15MB3.1MB1.2秒79.3%
JPEG画像12MB2.8MB0.8秒76.7%
PNG画像25MB6.5MB1.5秒74.0%
OFD文档30MB5.2MB2.0秒82.7%

如果你需要理解圧縮任务队列的底层设计原理,を参照してください圧縮任务队列设计。如果你需要を通じてDockerデプロイAPIサービス,を参照してくださいDockerデプロイ圧縮サービス

五、よくある質問FAQ

Q1:圧縮API怎么认证调用?

SmartSlim Server 的圧縮APIサポート2種類认证方式:API Key认证(在请求头X-API-Key中传入密钥,適したサービス端调用)和Bearer Token认证(在Authorization头中传入JWT Token,適した前端调用)。API Key永久有效但可随时吊销,Token有效期である24小时需要定期刷新。生产环境推奨API Key方式,簡単可靠。

Q2:圧縮APIサポート哪些ファイル形式?

智压通サービス器版APIサポートPDF、画像(jpg/jpeg/tif)、OFD形式,单ファイル上限1GB。智压通网络版APIサポート全部10大类40+形式(含動画、音声、Office文档等),单ファイル上限10GB。调用时を通じてformatパラメータ指定ファイルタイプ,不传则自動检测。注意サービス器版仅サポートPDF/画像/OFD三種類形式,全形式需网络版。

Q3:圧縮API有调用频率制限吗?

有限流戦略保护サービス稳定性。デフォルト限流:每分钟60次请求,每秒10次并发。超过制限返回429状态码,响应头含むX-RateLimit-Remaining和X-RateLimit-Reset字段。エンタープライズ版可向上至每分钟300次、每秒30并发。推奨客户端実現指数退避重试机制,收到429后等待1-2-4秒递增重试。

Q4:圧縮API大ファイル怎么処理?

大ファイル(超过50MB)推奨使用分ブロックアップロード接口,をファイル分成多つ5MB分ブロックアップロード,全部アップロード完成后通知マージ圧縮。圧縮完成后を通じて回调通知或轮询状态查询接口获取結果。大ファイル圧縮是异步的,不会阻塞API调用。100MB PDF圧縮约需8秒,1GB動画圧縮约需90秒,完成后自動生成ダウンロード链接。

まとめ

SmartSlim Server 的RESTful API提供4大接口——アップロード圧縮、バッチ量圧縮、状态查询、回调通知,覆盖から单ファイル到バッチ量処理的全シナリオ。认证方式双选:API Key適したサービス端,Bearer Token適した前端。限流戦略明确:デフォルト每分钟60次,エンタープライズ版300次,429状态码配合指数退避重试。80MB扫描PDF圧縮到8.2MB仅需6.5秒,圧縮率89.8%。

覚えておくべき3つのポイント:一是50MB以下同步返回結果,以上异步用任务ID查询;二是限流429要実現指数退避重试,别硬刷;三是大ファイル用分ブロックアップロード接口,5MB一ブロック分バッチアップロード。选に対して接口和パラメータ,圧縮API的调用其实很簡単。如果你更倾向ローカルSDK集成而非HTTP调用,を参照してください圧縮SDK集成指南。

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

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