Je suis l'auteur d'une gemme ruby sym
qui effectue un cryptage symétrique. En tant qu'élément de l'interface de ligne de commande, j'aimerais beaucoup pouvoir consommer les données à [de] crypter et écrire le résultat via un ensemble d'URI enfichable. Il me semble que nous utilisons déjà des URI de cette façon, par exemple file://
existe et est supporté par le module OpenURI
. Cependant, ce que je voudrais, c'est une gemme qui non seulement comprenne un ensemble beaucoup plus large d'URI mais qui peut aussi lire/écrire et éventuellement supprimer des ressources définies via des URI.Existe-t-il une gemme qui fournit des actions de lecture/écriture/suppression pour une large gamme de schémas d'URI, tels que file: //, env: //, etc?
Cette fonctionnalité pourrait être si extrêmement utile parce que tout programme de Ruby qui lit et écrit les données peuvent soudainement remplacer File.read
avec quelque chose de complètement générique:
var_value = SuperURI.parse('env://BASH_VARIABLE_NAME')`.read
ou
redis_op = SuperURI.write('redis://localhost:6379/1/OP,Arg1,Arg2')
ou
contents = SuperURI.parse('scp://[email protected]/path/file').read
Comme j'ai continué sur cette voie, j'ai des adresses URI candidates suivantes. Tous ne peuvent pas prendre en charge l'écriture ou la suppression de la ressource, mais tous peuvent lire les données.
URIs existants pris en charge par openURI:
http[s]://[email protected]/path/file
file://filename
ftp[s]://[email protected]/path/file
ldap://ldap.example.com/dc=example?
suggérées les possibilités d'accès à des données locales et à distance:
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
Et ainsi de suite.
Quelles sont les pensées des gens sur l'utilité de cette gemme (appelons-le SuperURI
pour l'instant) qui fournirait des implémentations pour les protocoles URI non conventionnels?
Est-ce utile? Est-ce une idée horrible? Est-il intrinsèquement non sécurisé?
Les avis réfléchis de la communauté Ruby sont très appréciés.
Merci!
Ceci est un peu ouvert pour le format Stack Overflow, c'est probablement un meilleur ajustement avec ['/r/programming'](http://reddit.com/r/programming), [Quora] (http: //quora.com) ou même une salle de discussion spécifique à Ruby. Bien que ce soit une idée intéressante, j'espère que toutes les opérations d'écriture sont entreprises uniquement avec une intention délibérée de la part de l'utilisateur et ne sont jamais faites d'une manière automagique qui pourrait conduire à de mauvaises surprises. – tadman
@tadman Merci pour les pointeurs. Je me retrouve certainement beaucoup plus souvent que Quora ou Reddit - d'où mon premier choix était de le poster ici. –
GitHub issue + annonce sur les médias sociaux comme une «demande de commentaires" n'est pas une mauvaise idée non plus. C'est un concept intéressant pour une bibliothèque. Je voudrais essayer de pivoter du nom "URI" qui implique un analyseur et vers quelque chose de plus "système de fichiers" orienté donc il est clair qu'il s'agit d'un mécanisme de lecture/écriture. – tadman