إعادة تسمية الصور دفعة واحدة بنمط وترقيم متسلسل
حوّل قائمة مرتبة من أسماء ملفات الصور إلى تسلسل واضح ومتناسق قبل إعادة تسمية الملفات الفعلية أو رفعها أو أرشفتها أو نشرها.
شغّل الأداة مجانًا
أدخل نمطاً يحتوي على عنصر نائب للعداد، واختر رقم البداية، وستحصل على مطابقة صريحة بين كل اسم أصلي واسمه الجديد. تستطيع الأداة حفظ امتداد كل ملف، وإعادة استخدام الاسم الأساسي، وإضافة أصفار بادئة إلى الأرقام كي يكون ترتيبها طبيعياً. وهي تحسب الأسماء فقط؛ فلا تقرأ الصور ولا ترفعها ولا تنقلها ولا تعدّلها، وبذلك يمكنكم مراجعة جميع التغييرات المقترحة بسهولة قبل تنفيذ أي عملية على نظام الملفات.
أنشئوا نمطاً واضحاً لتسمية الصور
تبدأ إعادة التسمية الجيدة لدفعة من الملفات بنمط يصف المجموعة نفسها، لا الكاميرا أو الهاتف الذي أنشأها. ضعوا {counter} في موضع الرقم المتسلسل، مثل product-red-{counter}{ext}. واستخدموا {counter:3} عند الحاجة إلى حد أدنى ثابت لعدد الخانات، فتكون النتائج 001 و002 و003. يمكن أن يتراوح العرض بين خانة واحدة وعشرين خانة، ولا يُقتطع أبداً رقم يتجاوز العرض المحدد. أضيفوا {ext} للاحتفاظ بامتداد كل ملف مصدر كما هو، بما في ذلك حالة الأحرف، أو استخدموا {name} إذا كان ينبغي إبقاء الاسم الأساسي الأصلي ضمن النتيجة. يمكن تكرار العنصر النائب نفسه أكثر من مرة، أما النص الحرفي فيظل بلا تغيير. ولأن الناتج اسم ملف وليس مساراً، تُرفض الشرطة المائلة أو العكسية التي يولدها النمط. يضمن ذلك بقاء العملية ضمن التسمية وعدم تغيير المجلد من دون قصد. راجعوا المطابقة الناتجة قبل تطبيقها بواسطة مدير ملفات أو برنامج نصي أو مسار لمعالجة الأصول أو مكتبة وسائط.
تحكموا في الترتيب والترقيم ومنع التكرار
تحدد قائمة الإدخال الترتيب. يحصل الملف الأول على قيمة start، ويحصل الثاني على العدد الصحيح التالي، ثم تستمر المعالجة من دون فرز الأسماء أو تفسير التواريخ المخفية فيها. لذلك تكون النتيجة متوقعة عندما تمثل قائمتكم مسبقاً ترتيب جلسة تصوير أو صفوف جدول أو تحديداً معيناً أو تسلسلاً تحريرياً. قيمة البداية الافتراضية هي 1، كما تُقبل 0 وغيرها من الأعداد الصحيحة الآمنة غير السالبة للأنظمة التي يبدأ ترقيمها من الصفر. يُفحص كل اسم مولد لاكتشاف التعارضات. يجوز استخدام نمط بلا عداد إذا كانت العناصر النائبة الأخرى تنتج أسماء مختلفة؛ فمثلاً يبقى {name}-approved{ext} فريداً في العادة. لكن إذا أنتج النمط الاسم نفسه لصورتين، يفشل الطلب ويوضح أن عنصر العداد مفقود. كما تُفحص الأنماط التي تحتوي على عداد، لأن تكرار المدخلات أو تجاهل النمط لفروق مهمة قد يسبب تعارضاً في حالات نادرة. لا تُعاد مطابقة جزئية عند فشل التحقق، ولهذا يمكن اعتبار كل استجابة ناجحة خطة كاملة لإعادة التسمية.
استخدموا المطابقة بأمان في سير العمل الفعلي
تحسب هذه الإمكانية خطة لإعادة التسمية ولا تمس الملفات عمداً. تربط كل نتيجة الاسم الأصلي بالبديل المقترح، مما يتيح لشخص أو برنامج لاحق فحص كل تغيير. يفيد هذا الفصل المصورين عند إعداد صفحات التواصل، وفرق التجارة الإلكترونية عند توحيد أصول المنتجات، والمطورين عند تنظيم ملفات الاختبار، وأمناء الأرشيف عند إنشاء تسلسلات ثابتة. احتفظوا بالعنصر {ext} عندما تضم الدفعة امتدادات JPEG أو PNG أو WebP أو امتدادات تختلف في حالة الأحرف؛ إذ ينسخ العنصر النائب لاحقة كل مصدر على حدة بدلاً من فرض صيغة واحدة. تذكروا أن إعادة التسمية لا تحول بيانات الصورة، ولذلك فإن تغيير نص الامتداد لا يغير الصيغة الفعلية. يجب أن تكون المدخلات أسماء ملفات لا مسارات، وألا يتجاوز الاسم 255 حرفاً. تستوعب الدفعة حتى 10,000 عنصر. ولتنفيذ التغيير، مرروا المطابقة إلى أداة تكشف أسماء الوجهات الموجودة وتنفذ إعادة التسمية على مرحلتين عندما تتداخل الأسماء القديمة والجديدة. تبلغ كلفة طلب API مقدار $0.002. ويعيد الإدخال نفسه النتيجة ذاتها دائماً من دون رفع أو اتصال بالشبكة أو عشوائية أو اعتماد على الوقت.
حالات الاستخدام
ترقيم جلسة تصوير بالتسلسل
حوّلوا الأسماء التي أنشأتها الكاميرا إلى سلسلة مرتبة ذات أصفار بادئة مع الاحتفاظ بامتداد كل صورة.
توحيد أسماء صور المنتجات
أنشئوا أسماء متوقعة لأصول المتجر من قائمة مرتبة لزوايا المنتجات وخياراتها المختلفة.
معاينة إعادة تسمية الأرشيف
أنشئوا المطابقة الكاملة بين الأسماء القديمة والجديدة وراجعوها قبل تغيير أي ملف مؤرشف.
الأسئلة الشائعة
ما العناصر النائبة المتاحة للعداد؟
استخدموا {counter} لرقم بلا أصفار بادئة، أو {counter:width} مثل {counter:4} لإكمال الحد الأدنى للخانات بالأصفار.
كيف نحافظ على امتداد كل صورة؟
ضعوا {ext} في النمط، فهو ينسخ الامتداد الأخير مع النقطة الأولى وحالة الأحرف الأصلية.
هل تعيد الأداة تسمية الصور أو ترفعها؟
لا، فهي تعيد فقط مطابقة حتمية بين كل اسم أصلي والاسم الجديد المقترح له.
ماذا يحدث إذا تطابق اسمان جديدان؟
يفشل الطلب بأكمله. وإذا لم يتضمن النمط عداداً، يطلب الخطأ منكم إضافته على نحو صريح.
كم تبلغ كلفة طلب API؟
تبلغ كلفة كل طلب $0.002، سواء بدأ العداد من الصفر أم استُخدمت الأصفار البادئة.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/image/batch-rename-pattern \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"filenames":["IMG_4102.JPG","IMG_4103.JPG","IMG_4104.PNG"],"pattern":"gallery-{counter:3}{ext}"}'const res = await fetch("https://api.kit.forhosting.com/image/batch-rename-pattern", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"filenames": [
"IMG_4102.JPG",
"IMG_4103.JPG",
"IMG_4104.PNG"
],
"pattern": "gallery-{counter:3}{ext}"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/batch-rename-pattern",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"filenames": [
"IMG_4102.JPG",
"IMG_4103.JPG",
"IMG_4104.PNG"
],
"pattern": "gallery-{counter:3}{ext}"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/batch-rename-pattern", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"filenames":["IMG_4102.JPG","IMG_4103.JPG","IMG_4104.PNG"],"pattern":"gallery-{counter:3}{ext}"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"filenames":["IMG_4102.JPG","IMG_4103.JPG","IMG_4104.PNG"],"pattern":"gallery-{counter:3}{ext}"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/batch-rename-pattern", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"filenames": [
"IMG_4102.JPG",
"IMG_4103.JPG",
"IMG_4104.PNG"
],
"pattern": "gallery-{counter:3}{ext}"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.batch_rename_pattern",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_items | 10000 |
max_filename_chars | 255 |
max_pattern_chars | 255 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |