Μάθετε πώς να χρησιμοποιείτε τη μονάδα dotenv crate και std:: env για αλληλεπίδραση με μεταβλητές περιβάλλοντος στο Rust και χειρισμό ευαίσθητων πληροφοριών.
Οι μεταβλητές περιβάλλοντος διαδραματίζουν κρίσιμους ρόλους στη διαμόρφωση και την προσαρμογή της συμπεριφοράς του σύγχρονου λογισμικού, παρέχοντας έναν ευέλικτο τρόπο για τη μετάδοση πληροφοριών σε εφαρμογές χωρίς τιμές σκληρού κωδικοποίησης.
Οι μεταβλητές περιβάλλοντος είναι δυναμικά ζεύγη κλειδιών-τιμών που ορίζονται στο περιβάλλον ενός λειτουργικού συστήματος ή ένα αρχείο μεταβλητής περιβάλλοντος για πρόσβαση κατά τη διάρκεια του χρόνου εκτέλεσης. Σε αντίθεση με τις σκληρά κωδικοποιημένες τιμές, οι μεταβλητές περιβάλλοντος επιτρέπουν μεγαλύτερη ευελιξία και προσαρμοστικότητα, καθώς μπορείτε εύκολα να τις τροποποιήσετε.
Υπάρχουν πολλά πακέτα και ενότητες για αλληλεπίδραση με μεταβλητές περιβάλλοντος στο οικοσύστημα του Rust, συμπεριλαμβανομένων των dotenv, ζηλεύω, και config κιβώτια τρίτων κατασκευαστών και χρησιμοποιήστε το ενσωματωμένο Rust std:: env μονάδα μέτρησης.
Εισαγωγή στο κλουβί dotenv
ο dotenv Το crate είναι ένα πολύτιμο εργαλείο για τη διαχείριση μεταβλητών περιβάλλοντος στο έργο Rust. ο dotenv Το crate παρέχει απλή ενοποίηση και εύχρηστες λειτουργίες που απλοποιούν τη διαδικασία φόρτωσης και πρόσβασης μεταβλητών περιβάλλοντος από αρχεία μεταβλητών περιβάλλοντος.
Τα χαρακτηριστικά του κιβωτίου dotenv περιλαμβάνουν απρόσκοπτη φόρτωση μεταβλητών περιβάλλοντος, προσεγγίσεις χειρισμού σφαλμάτων για μεταβλητές που λείπουν, διαλειτουργικότητα με το std:: env ενότητα, και πολλά άλλα.
Πρόσθεσε το dotenv κλουβί σε σας Cargo.toml ενότητα εξαρτήσεων του αρχείου για να αρχίσετε να αλληλεπιδράτε με μεταβλητές περιβάλλοντος χρησιμοποιώντας το πακέτο.
[εξαρτήσεις]
dotenv = "0.15.0"
Εκτελέστε αυτήν την εντολή στο τερματικό του καταλόγου του έργου σας για να δημιουργήσετε ένα αρχείο μεταβλητών περιβάλλοντος και να εισαγάγετε ένα ζεύγος κλειδιού-τιμής.
ηχώ DATABASE_URL=database.db > .env
Δείτε πώς μπορείτε να φορτώσετε το αρχείο περιβάλλοντος και να ανακτήσετε την τιμή ενός ζεύγους από το αρχείο (σε αυτήν την περίπτωση, η τιμή του DATABASE_URL κλειδί:
χρήση std:: env;
χρήση dotenv:: dotenv;στκύριος() {
dotenv().ok(); // Φόρτωση του αρχείου .env
// Διαβάστε την τιμή από το αρχείο .env
αφήνω database_url = env:: var("DATABASE_URL").αναμένω("Δεν έχετε ορίσει το DATABASE_URL");// Εκτυπώστε την τιμή
println!("URL βάσης δεδομένων: {}", database_url);
}
ο κύριος η λειτουργία φορτώνει το .env αρχείο με το Εντάξει συνάρτηση, διαβάζει την τιμή από το αρχείο με το env:: var λειτουργία και χειρίζεται πιθανά σφάλματα με το αναμένω λειτουργία.
Εισαγωγή στην ενότητα std:: env
Εναλλακτικά, αντί για χρησιμοποιώντας πακέτα τρίτων, μπορείτε να χρησιμοποιήσετε το ενσωματωμένο Rust std:: env μονάδα για την ανάγνωση μεταβλητών περιβάλλοντος από το μηχάνημά σας.
Αρχικά, θα χρειαστεί να εισαγάγετε το env ενότητα στο αρχείο Rust ως εξής:
χρήση std:: env;
Μετά την εισαγωγή του std:: env ενότητα, μπορείτε να διαβάσετε και να γράψετε μεταβλητές περιβάλλοντος.
Δείτε πώς μπορείτε να διαβάσετε το ΑΜΕΑ (Present Working Directory) μεταβλητή περιβάλλοντος με το std:: env μονάδα μέτρησης.
χρήση std:: env;
στκύριος() {
// Ανακτήστε την τιμή της μεταβλητής περιβάλλοντος "PWD".
αφήνω μεταβλητή = env:: var("ΑΜΕΑ").αναμένω("Σφάλμα: Η μεταβλητή περιβάλλοντος καταλόγου εργασίας δεν βρέθηκε");// Εκτυπώστε την τιμή που σχετίζεται με το κλειδί "PWD".
println!("Τιμή που σχετίζεται με το κλειδί PWD: {}", μεταβλητή);
}
ο κύριος η συνάρτηση εκτυπώνει την τιμή που σχετίζεται με το ΑΜΕΑ κλειδί αφού η μεταβλητή ανακτήσει την τιμή με το env:: var λειτουργία.
Επίσης, μπορείτε να χρησιμοποιήσετε το std:: env της ενότητας set_var συνάρτηση για τον ορισμό μεταβλητών περιβάλλοντος.
χρήση std:: env;
στκύριος() -> ΑποτέλεσμαΚουτί<dyn std:: error:: Error>> {
// Ορίστε τη μεταβλητή περιβάλλοντος "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 σύνδεσης απευθείας στον πηγαίο κώδικα, ενισχύοντας έτσι την ασφάλεια της εφαρμογής σας επιτρέποντας ταυτόχρονα την ευκολότερη διαμόρφωση διαχείριση.