أمثلة الكود - كود ضغط متعدد اللغات
أمثلة كود 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 الضغط بسرعة