Примеры кода - Многоязычный код сжатия

Примеры кода API сжатия категоризированные по языку и сценарию, охватывающие Python, Node.js, Java, Go и curl, с лучшими практиками для предварительной обработки ИИ-данных, пакетного обратные вызовы, шифрованное сжатие и многое другое

Примеры на Python

Вызов API сжатия с использованием библиотеки requests, поддержка одиночных файлов, пакетного, and async modes

Single File Compression

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())

Async Compression

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

Stream uploads and batch processing using axios + form-data

Stream Compression

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));

Batch Processing

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

Multipart upload compression requests using OkHttp

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

Build requests using the standard library net/http and 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 сжатия API из командной строки. Подходит для скриптов и автоматизированного тестирования

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

Лучшие практики by Scenario

Recommended integration approaches for typical business scenarios

AI Data Preprocessing Pipeline Integration

Call the compression API to preprocess documents/images перед загрузкой данных, снижая объем хранилища. Decompress on потребность в обучении моделей, ускоряя конвейер чтения.

# Pipeline integration: compress before ingestion
result = comp.compress_file("dataset/doc.pdf", quality="high")
upload_to_storage(result.output_path)

Пакетное сжатие + Callback Notification

Пакетный API обрабатывает асинхронно. Результаты отправляются через 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"}
)

Шифрованное сжатие с защитой паролем

Добавьте параметр пароля к конфиденциальным файлам. Сервер API выполняет шифрованное сжатие, обеспечивая безопасность передачи и хранения.

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

Large File Chunked Upload Compression

Upload большие файлы по частям, затем запускают общее сжатие. Это позволяет избежать тайм-аутов одиночных запросов и повышает success rates.

// Chunked upload + trigger compression
for (const chunk of chunks) {
    await uploadChunk(chunk);
}
await axios.post("https://api.uglypear.com/v1/compress",
    { upload_id, quality: "high" }, { headers });

GitHub Repository

Более полные примеры проектов скоро будут доступны в открытом доступе

uglypear-compressor-examples

Includes complete runnable example projects for Python, Node.js, Java, Go, and curl. Скоро в открытом доступе. Свяжитесь с технической поддержкой для раннего доступа.

Связаться с нами

Смотреть полную документацию API

Просмотр параметров API, кодов ошибок и онлайн-отладчика для быстрого освоения всех возможностей API сжатия

Смотреть документацию API Быстрый старт Скачать SDK