Exemples de code - Code de compression multilingue

Exemples de code d'API de compression classés par langage et scénario, couvrant Python, Node.js, Java, Go et curl, avec les meilleures pratiques pour le prétraitement des données IA, les rappels par lots, la compression chiffrée, etc.

Exemple Python

Utilisez la bibliothèque requests pour appeler l'API de compression, prenant en charge les modes fichier unique, lot et asynchrone

Compression d'un seul fichier

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

Compression par lots

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

Compression asynchrone

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

Exemple Node.js

Utilisez axios + form-data pour implémenter le téléchargement en flux et le traitement par lots

Compression en flux

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

Traitement par lots

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

Exemple Java

Utilisez OkHttp pour lancer une requête de compression 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());
}

Exemple Go

Utilisez la bibliothèque standard net/http et mime/multipart pour construire la requête

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

Exemple curl

Appel rapide de l'API de compression en ligne de commande, adapté aux scripts et tests automatisés

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

Meilleures pratiques par scénario

Méthodes d'intégration recommandées pour les scénarios métier typiques

Intégration au pipeline de prétraitement des données IA

Appelez l'API de compression pour prétraiter les documents/images avant le stockage des données, réduisant l'empreinte de stockage, puis décompressez à la demande pour l'entraînement du modèle, accélérant le pipeline de lecture.

# Intégration au pipeline : compression avant stockage
result = comp.compress_file("dataset/doc.pdf", quality="high")
upload_to_storage(result.output_path)

Compression par lots + notification de rappel

Traitement asynchrone par lots, les résultats sont poussés vers callback_url à la fin de la tâche, évitant les connexions longues en attente.

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"}
)

Compression chiffrée avec mot de passe

Ajoutez le paramètre password aux fichiers sensibles, le serveur compresse avec chiffrement, garantissant la sécurité de la transmission et du stockage.

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

Compression par téléchargement segmenté de gros fichiers

Pour les très gros fichiers, téléchargez d'abord par segments, puis déclenchez la compression globale, évitant les dépassements de délai de requête unique et améliorant le taux de réussite.

// Téléchargement segmenté + déclenchement de la compression
for (const chunk of chunks) {
    await uploadChunk(chunk);
}
await axios.post("https://api.uglypear.com/v1/compress",
    { upload_id, quality: "high" }, { headers });

Dépôt GitHub

Plus de projets d'exemple complets seront bientôt open source

uglypear-compressor-examples

Contient des projets d'exemple complets et exécutables en Python, Node.js, Java, Go et curl, bientôt open source. Pour un accès anticipé, veuillez contacter le support technique.

Nous contacter

Voir la documentation API complète

Consultez les paramètres d'interface, les codes d'erreur et le débogueur en ligne pour maîtriser rapidement toutes les capacités de l'API de compression

Voir la documentation API Démarrage rapide Télécharger le SDK