تقنية

رابط مؤقت يراجعه المساعد: هل إلغاؤه يحذف ملف الأصل؟

رسم توضيحي: طلب بدأ قبل الإلغاء؛ إلغاء رابط مسجل مصرح؛ محاولة بعد الإلغاء؛ النسخة المستقلة غير مفحوصة
مخطط من إعداد بحر العلوم. الطلب السابق مختلف؛ لا دليل حذف الأصل أو النسخة المستقلة

إلغاء رابط Blob ليس شهادة حذف لملف على القرص. عندما يصف المساعد رابطا مؤقتا لمعاينة مادة، ينبغي أن يحدد المرجع الذي أُلغي وما بقي خارج ذلك الوصف. نقرأ revokeObjectURL ومعيار File API، ونرسم خطا افتراضيا؛ لا ننشئ رابطا أو نحذف ملفا.

الخلاصة السريعة

تلغي revokeObjectURL مرجع عنوان الكائن الموصوف. [1] لا نستنتج منها حذف ملف أصل أو كل نسخة؛ وفي عقد File API تختلف الطلبات التي بدأت قبل الإلغاء عن المحاولات اللاحقة. [2]

  • تحرر revokeObjectURL عنوان كائن أُنشئ سابقا. [1] موضوعها مرجع الرابط، لا واقعة حذف كل الملفات أو النسخ.
  • نفترض رابطا مسجلا وإلغاء مصرحا ضمن التقسيم التخزيني نفسه؛ إزالة المدخل هنا لا تثبت ما حدث لنسخة مستقلة أعلنها دفترنا.
  • تؤدي المحاولات بعد الإلغاء إلى خطأ شبكة، وينبغي أن تستمر الطلبات التي بدأت قبله؛ ومحاولة إلغاء عنوان غير مسجل أو من تقسيم مختلف قد تفشل بصمت. [2]
  • يسجل المساعد الرابط وحدود الإلغاء وتوقيت الطلب؛ لم ننفذ استدعاء أو نحذف أصلا، ولا نعوض غياب السجل بعبارة «اختفت كل النسخ».

ما الشيء الذي تتناوله الدالة؟

تصف MDN الطريقة بأنها تحرر عنوان كائن سبق إنشاؤه، بما يسمح للمتصفح بعدم إبقاء مرجع الملف من أجل ذلك العنوان. [1]

موضوع القراءة عنوان كائن محدد؛ إذا كانت الورقة تسمي أيضا ملف أصل أو نسخة منفصلة، فلا تصف الدالة وحدها حالة تلك الأشياء. لا نفسر كل اختفاء بأنه حذف مادي.

نختار مصطلح «إلغاء مرجع الرابط» كي لا يخلط المساعد بين رابط المعاينة ومصدر المادة. لا نقدم عقد تخزين خدمة خارجية أو سياسة احتفاظ ملفات.

كيف نبني دفترا قبل الإلغاء وبعده؟

نؤلف ثلاثة سجلات: كائن ب، ورابط ل يشير إليه، ونسخة ن أعلن دفترنا أنها محفوظة مستقلة خارج هذا المرجع. نفترض أن ل مسجل وأن الإلغاء مصرح ضمن التقسيم التخزيني نفسه.

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

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

السجل المؤلفعلاقتهحد وصف الإلغاء
الرابط لمرجع للكائن بإزالة مدخله المفترضة
النسخة نمستقلة وفق دفترنالم نقدم حذفها

هل كل طلب يفشل لحظة الإلغاء؟

ينص File API على خطأ شبكة للمحاولات اللاحقة للإلغاء، بينما ينبغي نجاح الطلبات التي بدأت قبله. وقد تفشل محاولة إلغاء عنوان غير مسجل أو من تقسيم تخزيني مختلف بصمت. [2]

نؤلف طلب أ بدأ قبل خطوة الإلغاء، ومحاولة ب بعدها. لا نلخصهما بعبارة «توقفت جميع القراءات». كما لا نجعل رجوع الاستدعاء دليلا مستقلا على إزالة المدخل، إذا لم نعرف شروط تسجيله وتقسيمه.

هذه أسماء أحداث ورقية، لا نتائج اتصال قسناها. نحتفظ بتوقيت البداية لأن إسقاطه من الملخص يغير معنى الاستثناء.

أي صياغة تحتفظ بما نعرفه؟

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

لا نحتاج تخمين اسم ملف على قرص أو وصف كل البرامج التي تملك المادة. المقال يشرح عقد مرجع واحد، ولا يدعي حصر النسخ أو إثبات خصوصية أو حق في إزالة محتوى.

لم ننشئ Blob أو نستدع الدالة أو نبدأ طلبا. يوضح الخط فرق عمر مرجع وتوقيت محاولة ووجود مادة أخرى، دون تحويل شرح تقني إلى خبر حذف غير موثق.

المصادر ومتابعة القراءة

  1. MDN: revokeObjectURL (يفتح في نافذة جديدة)developer.mozilla.org
  2. File API: revokeObjectURL (يفتح في نافذة جديدة)w3c.github.io

أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.