2015-08-03 3 views
0

J'ai été surpris de ne pas trouver dans la documentation la réponse à des questions vraiment simples: Comment puis-je obtenir la liste de tous les seaux et tous les fichiers dans mon installation Riak CS? Aussi j'ai besoin d'avoir accès à tous ces fichiers dans tous les seaux avec un compte "root" - comment puis-je faire cela?Riak CS comment obtenir la liste de tous les seaux et tous les fichiers

Quoi qu'il en soit selon la documentation: http://docs.basho.com/riakcs/latest/cookbooks/Account-Management/ Une URL d'exemple pour une demande liste utilisateur ressemble à ceci:

GET http://data.example.com/riak-cs/users - 
or 
s3curl --id admin -- http://data.mystorage.me/riak-cs/users 

Alors, je l'ai édité .s3crul:

%awsSecretAccessKeys = (
adminname => { 
id => 'key here', 
key => 'secret here', 
}, 
); 

et le point s3curl directement à riak cs:

s3curl.pl --id adminname -- http://192.168.0.20:8080/riak-cs/users 

Obtenir la réponse:

<?xml version="1.0" encoding="UTF-8"?><Error><Code>AccessDenied</Code><Message>Access Denied</Message><Resource>/riak-cs/users</Resource><RequestId></RequestId></Error> 

Je suis sûr que "adminname" est Administrateur du compte dans Riak CS, je peux le voir dans le panneau RIAC-cs-contrôle.

Répondre

1

I semble que vous utilisez une base d'hôte personnalisée, donc ce que vous avez à faire est dites-le à s3curl.pl. Comme vous le savez, étant donné que l'authentification S3 (ou AWS v2) peut être un style de chemin ou un style de sous-domaine, s3curl.pl peut utiliser sans utiliser la partie hôte de l'URL ou l'en-tête de l'hôte tel quel. Par conséquent, il a quelques extrémités codées en dur [1] pour l'identification de la base de l'hôte.

Certaines fourchettes de s3curl.pl peuvent spécifier le point de terminaison personnalisé par l'option argument [2]. Si vous la mise en cs_root_host comme data.mystorage.me, puis la ligne de commande exemple ressemble à:

s3curl --id admin --endpoint data.mystorage.me \ 
    -- http://data.mystorage.me/riak-cs/users 

ou par style sous-domaine,

s3curl --id admin --endpoint data.mystorage.me \ 
    -- http://riak-cs.data.mystorage.me/users 

Une fois que vous obtenez toutes les informations utilisateur, vous pouvez faire quoi que ce soit, par exemple la liste seaux pour certains utilisateurs ou la liste de tous les objets dans certains seau.

[1] https://github.com/ksauzz/s3curl/blob/master/s3curl.pl#L30-L34 [2] https://github.com/ksauzz/s3curl/blob/master/s3curl.pl#L121

+0

Le problème se situe dans l'en-tête "Host":
's3curl.pl --id admin --endpoint = mon-données.exemple.com http: //192.168.0.20: 8080/riak-cs/users'
Demande:
GET/riak-cs/utilisateurs HTTP/1.1
User-Agent: curl/7.41.0
Hôte: 192.168.0.20: 8080
Accepter: */*
Date: Mar 11 août 2015 09:05:30 GMT
Autorisation: AWS :
Réponse:
HTTP/1.1 403 Interdit Je ne peux toujours pas le faire fonctionner par proxy, mais c'est déjà mon problème, la connexion directe à Riak CS avec l'en-tête de l'hôte approprié et l'authentification correcte fonctionne pour moi. Je vous remercie! – Miriam

+0

Pour l'accès proxy, l'option '-x' de curl est utile. 's3curl.pl --id admin - -x 192.168.0.20:8080 http: // mon-données.exemple.com/riak-cs/users' – shino

0

Pour la partie inscripteur, essayez s3cmd la -r s3://

Je ne pense pas qu'il y ait un compte qui a accès à tout par défaut, vous devez ajouter le compte à l'ACL

de chaque seau
+0

Nous vous remercions de "la -r"! Peut être que je peux en quelque sorte récupérer la liste de toutes les clés de l'utilisateur et des secrets? Et je dois le faire à partir du script (pas en ouvrant la page web de riak-cs-control dans le navigateur en utilisant le script java). – Miriam