2015-08-27 3 views
1

Je crée un seau public du client S3 en utilisant COMAND:Impossible d'obtenir un seau public en utilisant l'API Ceph

s3cmd mb s3://public_bucket --acl-public 
Bucket 's3://public_bucket/' created 

Je peux voir ce seau du client (s3cmd ls) et de ORAD gw (en utilisant un seau radosgw-admin liste). Mais lorsque j'utilise l'API et envoie la requête au serveur, j'obtiens toujours une erreur 404. Pourquoi cela se produit-il? Apache, fcgi fonctionne très bien.

Ma demande:

GET /public-bucket?max-keys=15 HTTP/1.1 
Host: ceph_gw.objectstore.com 

De plus, demander

GET/HTTP/1.1 
Host: ceph_gw.objectstore.com 

me donner une réponse

HTTP/1.1 200 OK 
Date: Thu, 27 Aug 2015 13:20:21 GMT 
Server: Apache/2.2.15 (CentOS) 
Connection: close 
Content-Type: application/xml 

<?xml version="1.0" encoding="UTF-8"?><ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Owner><ID>anonymous</ID><DisplayName></DisplayName></Owner><Buckets></Buckets></ListAllMyBucketsResult> 

Répondre

0

Ce que vous devez vérifier est des en-têtes HTTP si x-amz-acl est réglé sur la valeur appropriée que vous avez demandé. Si oui, il se peut qu'il y ait un problème avec le code ACL du serveur.

Vous pourriez aussi essayer - https://github.com/minio/mc, qui implémente une interface utilisateur de la console pour le trafic http.

$ mc --debug mb http://ceph_gw.objectstore.com/yourbucket 
$ mc --debug access set public http://ceph_gw.objectstore.com/yourbucket 

Exemple

$ mc --debug access set public s3/deflector 
mc: <DEBUG> PUT /deflector?acl= HTTP/1.1 
Host: s3.amazonaws.com 
User-Agent: Minio/UNOFFICIAL.GOGET (mc; darwin; amd64) 
Content-Length: 0 
Authorization: AWS4-HMAC-SHA256 Credential=**REDACTED**/20151107/us-east-1/s3/aws4_request, SignedHeaders=host;x-amz-acl;x-amz-content-sha256;x-amz-date, Signature=**REDACTED** 
X-Amz-Acl: public-read-write 
X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 
X-Amz-Date: 20151107T002030Z 
Accept-Encoding: gzip 

mc: <DEBUG> HTTP/1.1 200 OK 
mc: <DEBUG> Response Time: 917.38277ms 

Set access permission ‘public’ updated successfully for ‘https://s3.amazonaws.com/deflector’ 
0

s3cmd (depuis au moins 2011) a envoyé des en-têtes [ "x-amz- acl "] =" public-read "lors de la création du bucket si --acl-public est spécifié. Peut-être avez-vous une ancienne version de s3cmd, ou Ceph n'honore pas cet entête?

+0

J'utilise la dernière version de s3cmd. Comment puis-je vérifier, quels en-têtes ont été lus? – bayrinat

+0

Vous auriez à demander dans un forum Ceph ou regarder la source Ceph. –