تعرف على كيفية استخدام صندوق dotenv ووحدة std:: env للتفاعل مع متغيرات البيئة في Rust والتعامل مع المعلومات الحساسة.

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

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

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

مقدمة لصندوق dotenv

ال دوتنف الصندوق هو أداة قيمة لإدارة متغيرات البيئة في مشروع Rust الخاص بك. ال دوتنف يوفر الصندوق تكاملًا بسيطًا ووظائف سهلة الاستخدام تعمل على تبسيط عملية تحميل متغيرات البيئة والوصول إليها من ملفات متغيرات البيئة.

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

instagram viewer

أضف ال دوتنف قفص لك Cargo.toml قسم تبعيات الملف لبدء التفاعل مع متغيرات البيئة باستخدام الحزمة.

[التبعيات]
دوتنف = "0.15.0"

قم بتشغيل هذا الأمر في المحطة الطرفية لدليل مشروعك لإنشاء ملف متغيرات البيئة وإدراج زوج من المفاتيح والقيمة.

صدى صوت DATABASE_URL = database.db> .env

إليك كيفية تحميل ملف البيئة واسترداد قيمة الزوج من الملف (في هذه الحالة ، قيمة DATABASE_URL مفتاح:

يستخدم الأمراض المنقولة جنسيا:: إنف ؛
يستخدم dotenv:: dotenv ؛

الجبهة الوطنيةرئيسي() {

dotenv (). ok () ؛ // قم بتحميل ملف .env

// اقرأ القيمة من ملف .env
يترك database_url = env:: var ("DATABASE_URL").يتوقع("لم تقم بتعيين DATABASE_URL");

// اطبع القيمة
println!("URL قاعدة البيانات: {}"، database_url)؛

}

ال رئيسي وظيفة تحميل .env ملف بامتداد نعم دالة ، يقرأ القيمة من الملف بامتداد env:: var وظيفة ، ويتعامل مع الأخطاء المحتملة مع يتوقع وظيفة.

مقدمة إلى وحدة الأمراض المنقولة جنسياً: env

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

أولاً ، ستحتاج إلى استيراد ملف الحسد الوحدة النمطية في ملف Rust الخاص بك على النحو التالي:

يستخدم الأمراض المنقولة جنسيا:: إنف ؛

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

إليك كيف يمكنك قراءة الأشخاص ذوي الإعاقة (دليل العمل الحالي) متغير البيئة مع الأمراض المنقولة جنسيا:: إنف وحدة.

يستخدم الأمراض المنقولة جنسيا:: إنف ؛

الجبهة الوطنيةرئيسي() {

// استرجع قيمة متغير البيئة "الأشخاص ذوي الإعاقة"
يترك متغير = env:: var ("الأشخاص ذوي الإعاقة").يتوقع("خطأ: لم يتم العثور على متغير بيئة دليل العمل");

// اطبع القيمة المرتبطة بمفتاح "الأشخاص ذوي الإعاقة"
println!("القيمة المرتبطة بمفتاح PWD: {}"، عامل)؛

}

ال رئيسي تقوم الوظيفة بطباعة القيمة المرتبطة بامتداد الأشخاص ذوي الإعاقة المفتاح بعد أن يسترد المتغير القيمة بامتداد env:: var وظيفة.

أيضًا ، يمكنك استخدام ملف الأمراض المنقولة جنسيا:: إنف وحدة set_var وظيفة لتعيين متغيرات البيئة.

يستخدم الأمراض المنقولة جنسيا:: إنف ؛

الجبهة الوطنيةرئيسي() -> نتيجةصندوق<دين الأمراض المنقولة جنسيا:: خطأ:: خطأ >> {

// تعيين متغير البيئة "DATABASE_URL" إلى "database.db"
env:: set_var ("DATABASE_URL", "database.db");

// استرجع قيمة متغير البيئة "DATABASE_URL"
يترك env_variable = env:: var ("DATABASE_URL");

// تحقق مما إذا كان استرجاع متغير البيئة ناجحًا
لو env_variable.is_err () {

// إذا لم يتم العثور على متغير البيئة ، اطبع رسالة خطأ
println!("خطأ: DATABASE_URL غير موجود");

} آخر {

// إذا تم العثور على متغير البيئة ، اطبع قيمته
println!(تم تعيين "DATABASE_URL على: {}"، env_variable.unwrap ()) ،

}

نعم(())
}

ال رئيسي وظيفة تحدد متغير البيئة مع set_var الوظيفة التي تأخذ زوج المفتاح والقيمة. بعد ضبط متغير البيئة ، تقوم الوظيفة بطباعة القيمة المرتبطة بالمفتاح.

متغيرات البيئة متعددة الاستخدامات

متغيرات البيئة هي أداة قيمة للتعامل مع البيانات الديناميكية ؛ إنها تسهل التطوير القائم على الاختبار حيث يمكنك بسهولة تغيير البيانات وتشغيل حالات الاختبار لسيناريوهات متعددة.

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