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

by
rclement-sylha
Created on 2019-04-11 10:09:01 (edited on 2024-09-04 10:54:24) in 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 Replies ( Latest reply on 2020-07-17 11:58:12 by
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é.

Replies are currently disabled for this question.