البحث عن المرفقات حسب اسم التخزين

مرحباً، هل من الممكن البحث في الملفات المخزنة حسب اسم التخزين الخاص بها؟

أعني البحث ليس عن اسم الملف، بل عن اسمه المستند إلى التجزئة (hash-based name) والذي يرتبط بالملحق. على سبيل المثال، بصفتي مسؤولاً، استكشفت نسخة احتياطية من منتدى ووجدت ملحقاً كبيراً. لا أعرف اسم الملف الأصلي لأتمكن بسرعة من تحديده في المنتدى لاستكشافه.

يمكنني البحث حسب اسم الملف، وأرى اسم التخزين الخاص به:

للأسف، البحث حسب اسم التخزين لا يعمل:

هل هناك أي طريقة للتعامل مع هذه الملحقات بشكل ودي؟ لا أريد حذفها من التخزين حتى أستكشف محتواها (في معظم الحالات، أود تنظيف المحتوى وتقليصه وإعادة تجميعه). ربما توجد طريقة باستخدام مستكشف البيانات (Data Explorer

أعتقد أن ما تحتاجه هو العثور على sha1 باستخدام إحدى طرق وحدة التحكم:

Upload.sha1_from_short_url
Upload.sha1_from_short_path
Upload.sha1_from_base62_encoded

والمنطق الذي يمكنك تكراره في مكان آخر إذا احتجت إليه. باستخدام تجزئة sha1 هذه، يمكنك البحث في جدول uploads عن القيمة، أو استخدامها في وحدة التحكم:

Upload.find_by(sha1: sha_to_find)

في حالتك، إذا قمت بكتابتها بشكل صحيح:

[1] pry(main)> Upload.sha1_from_base62_encoded 'yl9oPeFdXA4DSdL4chS0sznm5zF'
=> "f0ae01b37fe5db52f1935f6247dff639f77c5117"
3 إعجابات

همم، مثير للاهتمام جدًا، شكرًا جزيلًا! :handshake:

ملاحظة: لمن سيأتون إلى هذا الموضوع من البحث:
كيفية تشغيل وحدة تحكم Rails (لبدء جلسة Pry):

sudo /var/discourse/launcher enter app
rails c
pry(main)> هنا يمكنك تشغيل الأوامر المذكورة أعلاه

أيضًا SQL لقاعدة البيانات:

SELECT filesize, original_filename, sha1 FROM uploads WHERE filesize > 3000000 order BY filesize desc
إعجابَين (2)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.