Μεταβλητές περιβάλλοντος διαμεσολαβητή για λήψεις Julia
Ορίστε μεταβλητές διαμεσολαβητή συμβατές με libcurl πριν εκκινήσετε τη Julia και διαγνώστε το αίτημα Downloads αντί να υποθέτετε ότι κάθε πακέτο χρησιμοποιεί το ίδιο backend.
Η βασική βιβλιοθήκη Downloads της Julia χρησιμοποιεί libcurl. Ορίστε το περιβάλλον διαμεσολαβητή πριν εκκινήσετε τη διεργασία που εκτελεί τη λήψη:
export http_proxy='http://proxy.example:8080'
export https_proxy='http://proxy.example:8080'
export no_proxy='localhost,127.0.0.1'
julia fetch.jl
Ένα παράδειγμα fetch.jl μπορεί να χρησιμοποιήσει το συνηθισμένο API Downloads:
using Downloads
Downloads.download(
"https://downloads.example/data.csv",
"data.csv";
timeout = 30,
)
Η μεταβλητή https_proxy επιλέγει τη διαδρομή προς προορισμό HTTPS· η τιμή http:// δηλώνει έναν συνηθισμένο διαμεσολαβητή HTTP. Για λήψεις που επιτρέπεται να χρησιμοποιούν δημόσια endpoints, η λίστα διαμεσολαβητών HTTP προσφέρει υποψηφίους για αυτή την τιμή. Μην αλλάξετε αυτή την τιμή σε https:// εκτός αν ο ίδιος ο ακροατής διαμεσολαβητή υποστηρίζει TLS.
Το libcurl δέχεται το http_proxy μόνο πεζό. Και άλλες μεταβλητές διαμεσολαβητή πρωτοκόλλου έχουν κεφαλαία μορφή. Η σύμβαση παράκαμψης είναι no_proxy ή NO_PROXY, με εγγραφές χωρισμένες με κόμμα· το http_no_proxy δεν είναι η τεκμηριωμένη γενική μεταβλητή παράκαμψης.
Μια διεργασία Julia που εκκινείται από IDE ή υπηρεσία παρασκηνίου κληρονομεί το περιβάλλον αυτού του εκκινητή. Μια μεταβλητή που εξάγεται αργότερα σε άλλο τερματικό δεν την επαναρυθμίζει.
Για διάγνωση, το Downloads.download δέχεται verbose=true και το callback αποσφαλμάτωσής του μπορεί να λάβει αναλυτικά συμβάντα μεταφοράς. Εξετάστε αυτή την έξοδο τοπικά και αφαιρέστε μυστικά πριν την κοινοποιήσετε.
Ένα πακέτο που χρησιμοποιεί άλλη υλοποίηση HTTP χρειάζεται δική του εξέταση ρυθμίσεων. Μια επιτυχής κλήση Downloads τεκμηριώνει τη συμπεριφορά εκείνου του αιτήματος, όχι κάθε δικτυακής λειτουργίας γραμμένης σε Julia.