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 contacterVoir 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