コード例 - 複数言語圧縮コード

言語とシナリオ別の圧縮APIコード例で、Python、Node.js、Java、Go、curlをカバーし、AIデータ前処理、バッチコールバック、暗号化圧縮などのベストプラクティスを含む

Python例

requestsライブラリを使用して圧縮APIを呼び出し、単一ファイル、バッチ、非同期の3つのモードをサポート

単一ファイル圧縮

import requests

resp = requests.post(
  "https://api.uglypear.com/v1/compress",
  headers={"Authorization": "Bearer YOUR_API_KEY"},
  files={"file": open("input.pdf", "rb")},
  data={"quality": "high"}
)
print(resp.json())

バッチ圧縮

import requests

files = [("files", open(f, "rb")) for f in ["a.pdf", "b.pdf", "c.pdf"]]
resp = requests.post(
  "https://api.uglypear.com/v1/batch/compress",
  headers={"Authorization": "Bearer YOUR_API_KEY"},
  files=files,
  data={"quality": "medium", "callback_url": "https://yourapp.com/callback"}
)
print(resp.json())

非同期圧縮

import asyncio
import aiohttp

async def compress(path):
  async with aiohttp.ClientSession() as session:
    with open(path, "rb") as f:
      data = aiohttp.FormData()
      data.add_field("file", f)
      data.add_field("quality", "high")
      async with session.post(
        "https://api.uglypear.com/v1/compress",
        headers={"Authorization": "Bearer YOUR_API_KEY"},
        data=data
      ) as resp:
        return await resp.json()

asyncio.run(compress("input.pdf"))

Node.js例

axios + form-dataを使用してストリーミングアップロードとバッチ処理を実現

ストリーミング圧縮

const fs = require("fs");
const FormData = require("form-data");
const axios = require("axios");

const form = new FormData();
form.append("file", fs.createReadStream("input.pdf"));
form.append("quality", "high");

axios.post("https://api.uglypear.com/v1/compress", form, {
  headers: {
    ...form.getHeaders(),
    Authorization: "Bearer YOUR_API_KEY"
  }
}).then(res => console.log(res.data));

バッチ処理

const fs = require("fs");
const FormData = require("form-data");
const axios = require("axios");

const form = new FormData();
["a.pdf", "b.pdf", "c.pdf"].forEach(f =>
  form.append("files", fs.createReadStream(f))
);
form.append("quality", "medium");

axios.post("https://api.uglypear.com/v1/batch/compress", form, {
  headers: { ...form.getHeaders(), Authorization: "Bearer YOUR_API_KEY" }
}).then(res => console.log(res.data));

Java例

OkHttpを使用してmultipartアップロード圧縮リクエストを送信

OkHttpClient client = new OkHttpClient();

RequestBody body = new MultipartBody.Builder()
  .setType(MultipartBody.FORM)
  .addFormDataPart("file", "input.pdf",
    RequestBody.create(new File("input.pdf"),
      MediaType.parse("application/pdf")))
  .addFormDataPart("quality", "high")
  .build();

Request request = new Request.Builder()
  .url("https://api.uglypear.com/v1/compress")
  .header("Authorization", "Bearer YOUR_API_KEY")
  .post(body)
  .build();

try (Response response = client.newCall(request).execute()) {
  System.out.println(response.body().string());
}

Go例

標準ライブラリnet/httpとmime/multipartでリクエストを構築

package main

import (
  "bytes"
  "io"
  "mime/multipart"
  "net/http"
  "os"
)

func main() {
  file, _ := os.Open("input.pdf")
  defer file.Close()

  var buf bytes.Buffer
  writer := multipart.NewWriter(&buf)
  part, _ := writer.CreateFormFile("file", "input.pdf")
  io.Copy(part, file)
  writer.WriteField("quality", "high")
  writer.Close()

  req, _ := http.NewRequest("POST",
    "https://api.uglypear.com/v1/compress", &buf)
  req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
  req.Header.Set("Content-Type", writer.FormDataContentType())

  resp, _ := http.DefaultClient.Do(req)
  defer resp.Body.Close()
  body, _ := io.ReadAll(resp.Body)
  println(string(body))
}

curl例

コマンドライン迅速に呼び出し圧縮API、適していますスクリプト与自動化テスト

curl -X POST https://api.uglypear.com/v1/compress \
 -H "Authorization: Bearer YOUR_API_KEY" \
 -F "file=@input.pdf" \
 -F "quality=high"

シナリオ別ベストプラクティス

典型的なビジネスシナリオの推奨統合方式に対応

AIデータ前処理パイプライン統合

データ格納前に圧縮APIを呼び出しドキュメント/画像の前処理、ストレージ占有率を削減、オンデマンドで解凍してモデル学習に供し、読み込みチェーンを加速。

# パイプライン統合:格納前圧縮
result = comp.compress_file("dataset/doc.pdf", quality="high")
upload_to_storage(result.output_path)

バッチ圧縮+コールバック通知

バッチインターフェース非同期処理、任務完了后向 callback_url プッシュ結果、回避ロング接続待ち。

resp = requests.post(
  "https://api.uglypear.com/v1/batch/compress",
  headers={"Authorization": "Bearer YOUR_API_KEY"},
  files=files,
  data={"callback_url": "https://yourapp.com/callback"}
)

带密码的暗号化圧縮

機密ファイルにpasswordパラメータを付加、サーバー側で暗号化圧縮、転送とストレージの安全性を保障。

curl -X POST https://api.uglypear.com/v1/compress \
 -H "Authorization: Bearer YOUR_API_KEY" \
 -F "file=@input.pdf" \
 -F "password=YourStrongPass"

大容量ファイルチャンクアップロード圧縮

超大容量ファイルに対し先にチャンクアップロード、その後全体圧縮をトリガー、単回リクエストのタイムアウトを回避、成功率を向上。

// チャンクアップロード + トリガー圧縮
for (const chunk of chunks) {
  await uploadChunk(chunk);
}
await axios.post("https://api.uglypear.com/v1/compress",
  { upload_id, quality: "high" }, { headers });

GitHub リポジトリ

より多くの完全なサンプルプロジェクトが近日オープンソース化予定

uglypear-compressor-examples

Python、Node.js、Java、Go、curlの完全な実行可能サンプルプロジェクトを含む、近日オープンソース化予定。事前取得が必要な場合はテクニカルサポートにご連絡ください。

お問い合わせ

確認完全なAPIドキュメント

インターフェースパラメータ、エラーコードとオンラインデバッガーを参照、圧縮APIの全機能を迅速に習得

確認APIドキュメント クイックスタート SDKをダウンロード