قد أكون أخطأت في التوجيه هنا، لذا أعتذر إن كان الأمر كذلك - لكن أي تلميحات مرحب بها جدًا!
هناك بعض الخيوط في موقع Discourse الخاص بنا تُعرض جزئيًا على موقعنا الرئيسي. لأن النسخة المطبوقة من المنشور تحتوي على كل HTML الخاص بlightbox، وهو ما لا نريده على الموقع الرئيسي، فأنا أعمل مع النسخة الخام للمنشور.
أحد الأشياء التي تُربكني هو روابط تحميل الملفات. كيف يمكنني تحويل رابط upload:// إلى رابط كامل؟ لقد حاولت البحث وصادفت SHA1 و Base62، لكن بغض النظر عن ذلك، مهما حاولت، لا أستطيع الحصول على الرابط الكامل.
كما قلت، قد أكون أنظر إلى الشيء الخطأ، أو أن هناك (على الأرجح) طريقة أسهل للتعامل مع هذه الأمور، لذا أي نصائح مرحب بها!
مثير للاهتمام. لا يمكنني تكرار هذا باستخدام جافاسكريبت. لأن طريقتك الأخيرة هي تحويل binary2hex ولكن النتيجة من فك تشفير base62 ليست تمثيلًا ثنائيًا مما أفهمه.
function fromBase62(s) {
var digits = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
var result = 0;
for (var i = 0; i < s.length; i++) {
var p = digits.indexOf(s[i]);
if (p < 0) {
return NaN;
}
result += p * Math.pow(digits.length, s.length - i - 1);
}
return result;
}
للأسف، لا تساعد طرق bin2hex ولا dec2hex، عندما أستخدم سلاسل الإدخال الخاصة بك.
لقد أنشأت صندوق رموز لهذه المشكلة إذا كان شخص ما مهتمًا باللعب بها. القيمة النهائية هي 1 لسلسلة الإدخال الخاصة بي وهو أمر خاطئ ؛ (
يجب أن تكون قادرًا على استخدام binVal.toString(16) للحصول على القيمة السداسية عشرية.
ومع ذلك، أعتقد (!) أن النتيجة الوسيطة كبيرة جدًا بحيث لا تتناسب مع عدد صحيح عادي.
شكراً على التلميح يا ريتشارد، لكنني لم أتقدم أكثر حتى مع هذه الفكرة.
لا أعرف، ألن يكون من الجيد وجود إعداد مثل “تمكين روابط التحميل المطلقة في طرق العرض الخام (المسارات)”. سأستخدم ذلك بالتأكيد في حالتنا - لأنه، حسب فهمي، فإن تقصير عنوان URL للتحميل هو مجرد تحسينات في الخطاب لتقليل التعليمات البرمجية؟ لا علاقة له بـ Markdown.
لن تتمكن أبدًا من إعادة بناء عنوان URL للتحميل بالكامل دون نوع من الواجهة لقاعدة بيانات Discourse. المسار الكامل للتحميل يعتمد على id التحميل، والذي لا يمكن تحديده من عنوان URL القصير.
كما قال @pfaffman، قد نتمكن من المساعدة أكثر إذا وصفت حالة الاستخدام الخاصة بك.