هل يمكن استخدام Amazon لتفريغ خادم الملفات الثابتة لتطبيق Ruby On Rails، ولكن لا يزال يدعم مصادقة التطبيق والترخيص؟

StackOverflow https://stackoverflow.com/questions/1478609

سؤال

يمكن استخدام إحدى خدمات Amazon (خدمة بيانات S3 الخاصة بها، أو غير ذلك) لتفريغ خادم الملفات الثابتة لتطبيق Ruby On Rails، ولكن لا تزال تدعم مصادقة التطبيق والترخيص؟

هذا هو أنه عندما قام مستعدني المستخدم بتنزيل HTML الأولي بحثا عن صفحة واحدة من Ruby On Rails Application، عندما عاد لمحتوى ثابت (مثل ملف صورة أو ملف CSS)، فإن هذا الطلب سيكون: (أ) توجيه مباشرة إلى خدمة Amazon (بدون دورات ROR تستخدم لخدمة تكنولوجيا المعلومات، أو عرض النطاق الترددي)، ولكن (ب) لا يزال يتعين على (B) أن يتعين على طلب المتصفح لهذا العنصر (على سبيل المثال صورة) عن طبقة مصادقة / تفصيل بناء على طراز المستخدم في Ruby على تطبيق القضبان - بمعنى آخر لضمان عدم وجود أي شخص فقط الحصول على الصورة ...

شكرا

هل كانت مفيدة؟

المحلول

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

S3Object.url_for('beluga_baby.jpg', 'marcel_molina')

يمكنك أيضا تحديد خيار Expires_in أو انتهاء الصلاحية لكل ملف. الشيء السيئ هو أنك ستحتاج إلى إنشاء مساعد لروابط أسلوب الخاص بك والصورة و JS لإنشاء عناوين URL S3 المناسبة. أود أن أوصي بإعداد اسم مجال ل دلو S3 الخاص بك، مثل "الأمثلة 3.amazonaws.com" ووضع كل ملفات الصور القياسية الخاصة بك و CSS هناك باسم الجمهور. ثم قم بتعيين ذلك كمضيف الأصول في تكوين القضبان الخاصة بك. ثم، استخدم فقط الروابط الآمنة للملفات الثابتة التي تحتاجها حقا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top