Ich bin der Autor eines Rubin Juwel sym
, die symmetrische Verschlüsselung durchführt.Gibt es ein Schmuckstück, das Lese-/Schreib-/Löschaktionen für eine Vielzahl von URI-Schemas bietet, z. B. file: //, env: // usw.?
Als Teil der Befehlszeilenschnittstelle würde ich sehr gerne in der Lage sein, die zu verschlüsselnden Daten zu verwenden und das Ergebnis über einen steckbaren Satz von URIs zu schreiben. Es scheint mir, dass wir bereits URIs auf diese Weise verwenden, zum Beispiel file://
existiert und von OpenURI
Modul unterstützt wird.
Was ich jedoch möchte, ist ein Juwel, das nicht nur viel mehr URIs versteht, sondern auch Ressourcen, die über URIs definiert sind, lesen/schreiben und möglicherweise löschen kann.
könnte diese Funktionalität so enorm nützlich sein, weil jede Ruby-Programm, das Daten liest und schreibt plötzlich File.read
mit etwas ganz generic ersetzen:
var_value = SuperURI.parse('env://BASH_VARIABLE_NAME')`.read
oder
redis_op = SuperURI.write('redis://localhost:6379/1/OP,Arg1,Arg2')
oder
contents = SuperURI.parse('scp://[email protected]/path/file').read
Als ich auf diesem Weg weiter ging, habe ich tho der folgenden Kandidaten-URIs. Nicht alle können das Schreiben oder Löschen der Ressource unterstützen, aber alle können die Daten lesen.
Bestehende URIs von openURI unterstützt:
http[s]://[email protected]/path/file
file://filename
ftp[s]://[email protected]/path/file
ldap://ldap.example.com/dc=example?
Empfohlene Möglichkeiten für den Zugriff auf lokale und Remote-Daten:
string://value
env://variable
std[in|out]://
shell://command
keychain://item_name
redis://127.0.0.1:6397/1/OP,arg1,arg2,...
memcached://127.0.0.1:11211/OP,arg1,arg2
scp://[email protected]/path/file
postgresql://[email protected]/db/?sql=select%20now
Und so weiter.
Was denken die Leute über die Nützlichkeit dieses Edelsteins (nennen wir es einfach SuperURI
), der Implementierungen für die unkonventionellen URI-Protokolle bereitstellen würde?
Ist es nützlich? Ist es eine schreckliche Idee? Ist es von Natur aus unsicher?
Nachdenklich Meinungen aus der Ruby-Community werden sehr geschätzt.
Danke!
Dies ist ein wenig offen für das Stack Overflow-Format, es ist wahrscheinlich besser mit ['/r/programming'](http://reddit.com/r/programming), [Quora] (http: //quora.com) oder sogar ein Ruby-spezifischer Chatroom. Obwohl das eine interessante Idee ist, würde ich hoffen, dass jegliche Schreiboperationen nur mit bewusster Absicht seitens des Benutzers ausgeführt werden und niemals in einer automatischen Weise erfolgen, die zu hässlichen Überraschungen führen könnte. – tadman
@tadman Danke für die Hinweise. Ich finde mich auf SO viel häufiger als auf Quora oder Reddit - daher war meine erste Wahl, es hier zu posten. –
GitHub Ausgabe + Ankündigung auf Social Media als "Request for Comments" ist auch keine schlechte Idee. Es ist ein interessantes Konzept für eine Bibliothek. Ich würde versuchen, von dem "URI" -Namen zu pivotieren, was einen Parser impliziert und hin zu etwas mehr "Dateisystem" orientiert, so dass es klar ist, dass dies ein Lese-/Schreibmechanismus ist. – tadman