أمثلة الكود - كود ضغط متعدد اللغات

أمثلة كود API الضغط مصنفة حسب اللغة والسيناريو، تغطي Python و Node.js و Java و Go و curl، مع أفضل الممارسات لمعالجة بيانات الذكاء الاصطناعي والاستدعاءات الدفعية والضغط المشفر والمزيد

أمثلة Python

استدعاء API الضغط باستخدام مكتبة requests، يدعم أوضاع الملف الفردي والدفعي وغير المتزامن

ضغط ملف فردي

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

طلبات ضغط رفع multipart باستخدام 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

بناء الطلبات باستخدام المكتبة القياسية 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"

أفضل الممارسات حسب السيناريو

نهج التكامل الموصى به للسيناريوهات التجارية النموذجية

تكامل خط معالجة بيانات الذكاء الاصطناعي

استدعاء API الضغط لمعالجة المستندات/الصور مسبقاً قبل استيعاب البيانات، مما يقلل من البصمة التخزينية. فك الضغط عند الطلب لتدريب النموذج، مما يسرع خط القراءة.

# تكامل الخط: الضغط قبل الاستيعاب
result = comp.compress_file("dataset/doc.pdf", quality="high")
upload_to_storage(result.output_path)

الضغط الدفعي + إشعار الاستدعاء

تعالج 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"}
)

الضغط المشفر المحمي بكلمة مرور

أضف معلمة كلمة مرور للملفات الحساسة. يقوم الخادم بإجراء ضغط مشفر، مما يضمن أمان النقل والتخزين.

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 الضغط بسرعة

عرض وثائق API دليل البدء السريع تحميل SDK