Connexion OpenStack Swift Object Storage
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
question

Connexion OpenStack Swift Object Storage

Par
rclement-sylha
Créé le 2019-04-11 10:09:01 (edited on 2024-09-04 10:54:24) dans Public Cloud OVHcloud

Bonjour,

J'ai créé un conteneur privé dans l'espace client, avec lequel je peux interagir depuis le web manager.
J'ai créé un compte utilisateur OpenStack dans l'espace client, avec lequel je peux me connecter à Horizon OpenStack OVH.

Je cherche comment utiliser l'API d'Object Storage OVH depuis le client Python `python-swiftclient` en utilisant les infos à ma disposition :

* Swift auth URL
* Cloud project ID
* User ID
* User password
* (optionel) Region

Typiquement, avec le Python CLI `swift`, cela prend la forme :

swift -A -U : -K list

J'ai testé un certain nombre de combinaisons, impossible de s'y connecter.
Egalement, quelle est l'URL pour l'accès à Swift ? https://auth.cloud.ovh.net/v1.0, https://storage.gra5.cloud.ovh.net, etc. ?

La documentation sur le sujet manque cruellement d'informations pragmatiques.

Merci d'avance,

Romain


3 réponses ( Latest reply on 2020-07-17 11:58:12 Par
THIERRYG32
)

Salut @rclement-sylha

Je sais pas si tu as encore besoin d'aide a ce sujet, mais est ce que tu as suivi ces guides :
- Charger les variables openstack :
https://docs.ovh.com/fr/public-cloud/charger-les-variables-denvironnement-openstack/
- commandes de base :
https://docs.ovh.com/fr/public-cloud/debuter-avec-lapi-swift/

En gros, pense a prendre le fichier open.rc dans l'espace client au préalable, tu auras toute les info dedans !

Jalinn

Merci @Jalinn !

En effet j'ai dû passer à côté de cette partie de la documentation, n'étant pas dans la section "Object Storage" ...

En croisant les infos de connexion de `openrc.sh`, c'est effectivement possible de se connecter et de manipuler les conteneurs avec le client `python-swiftclient`.

Comme le process n'est pas du tout trivial, au cas où cela pourrait servir à quelqu'un, voilà la ligne de commande (sans utiliser `openrc.sh`):

```
swift \
--auth https://auth.cloud.ovh.net/v2.0/ \
--auth-version 2 \
--user ":" \
--key "" \
--os-region-name "" \
stat
```

Et en utilisant l'API Python:

```
import swiftclient

conn = swiftclient.Connection(
user=":",
key="",
authurl="https://auth.cloud.ovh.net/v2.0/",
auth_version="2",
os_options={
"region_name": ""
}
)

conn.get_account()
conn.put_container("")
```

Et pour ceux qui souhaitent se servir de Swift comme alternative à S3/Minio/etc. pour l'upload de fichiers utilisateurs, il faut donner accès en lecture seule au conteneur (objets uniquements, pas le listing) :

```
swift \
--auth https://auth.cloud.ovh.net/v2.0/ \
--auth-version 2 \
--user ":" \
--key "" \
--os-region-name "" \
post --read-acl '.r:*'
```

Puis utiliser comme URL d'accès: `https://storage..cloud.ovh.net/v1/AUTH_//`.

1 an après :-)
merci pour la solution , j'étais bloqué.

Les réponses sont actuellement désactivées pour cette question.