2021-11-03 13:34:38 +01:00
---
2021-11-04 10:16:25 +01:00
title: Infomaniak Public Cloud - Swift : Le stockage object
2021-11-03 13:34:38 +01:00
description: Créer et gérer ses container Swift et ses objects
published: true
2021-11-04 11:33:25 +01:00
date: 2021-11-04T10:33:23.640Z
2021-11-03 13:34:38 +01:00
tags: infomaniak, public-cloud, cloud, ipc, swift
editor: markdown
dateCreated: 2021-11-03T12:34:36.327Z
---
2021-11-04 10:13:41 +01:00
![plan_de_travail_1@4x.png ](/images/cloud/infomaniak-public-cloud/plan_de_travail_1@4x.png =600x )
2021-11-03 13:34:38 +01:00
# Introduction
2021-11-04 11:33:25 +01:00
## Stockage objet
2021-11-04 09:55:25 +01:00
Appelé également stockage basé sur les objets, le stockage d’objets est un terme général faisant référence à la façon dont nous organisons et travaillons avec les unités de stockage, appelées objets.
2021-11-04 11:33:25 +01:00
## Objet
2021-11-04 09:55:25 +01:00
Dans un système de stockage de type objet, un objet est tout simplement un fichier stocké dans le dit système. En revanche il se caractérise par trois éléments qui sont propre à ce type de stockage
- Les données elles-mêmes
- Les métadonnées qui contiennent des informations contextuelles sur ce que sont les données, leurs finalités, leur confidentialité ou toute autre information pertinente pour le traitement des informations
- Un identificateur unique à l’échelle mondiale. Il s’agit d’une adresse donnée à l’objet afin qu’il puisse être retrouvé sur un système réparti
## Conteneur
2021-11-04 11:29:02 +01:00
Un conteneur Swift est un espace de stockage sur lequel on peu appliquer une politique de stockage (uniquement à la création) et un accès public ou privé. C'est lui qui va contenir les objects envoyés sur Swift.
2021-11-03 13:34:38 +01:00
# Créer un conteneur
2021-11-04 08:48:09 +01:00
## Horizon
### Rendez vous dans la catégorie `Conteneurs` sous `Stockage d'objet` dans votre dashboard Horizon et cliquez sur `+ Conteneur`
2021-11-04 08:53:14 +01:00
![infomaniak-publiccloud_2_1.png ](/images/cloud/infomaniak-public-cloud/2/infomaniak-publiccloud_2_1.png =1300x )
2021-11-04 08:48:09 +01:00
### Nommez votre container, choisissez sa Storage Policy et s'il est publique ou non
2021-11-04 08:53:14 +01:00
![infomaniak-publiccloud_2_2.png ](/images/cloud/infomaniak-public-cloud/2/infomaniak-publiccloud_2_2.png =1300x )
2021-11-04 08:48:09 +01:00
> Votre conteneur est créé !
{.is-success}
### Voici les différentes fonctionnalités disponibles sur le dashboard Horizon :
1. Informations à propos du conteneur (Activation ou desactivation du mode `Accès publique` et suppression du conteneur)
2. Rechercher des objects dans le conteneur
3. Télécharger un object vers le conteneur
4. Créer un "Dossier"
5. Supprimer un object
2021-11-04 08:53:14 +01:00
![infomaniak-publiccloud_2_3.png ](/images/cloud/infomaniak-public-cloud/2/infomaniak-publiccloud_2_3.png =1300x )
2021-11-04 08:48:09 +01:00
## CLI
### La création d'un conteneur se fait avec la commande suivante :
```bash
openstack container create [--storage-policy < POLICY_NAME > ] [--public] < CONTAINER >
```
> **--storage-policy** : Nom de la storage policy à appliquer au conteneur
2021-11-04 11:33:25 +01:00
> **--public** : Activer les liens publics du conteneur
2021-11-04 08:48:09 +01:00
> **CONTAINER** : Conteneur à créer
{.is-info}
### Lister les conteneurs existants :
```bash
openstack container list
```
### Supprimer un conteneur :
```bash
openstack container delete [--recursive] < CONTAINER >
```
> **--recursive** : Supprimer récursivement les objets dans le conteneur avant la suppression du conteneur
> **CONTAINER** : Conteneur à supprimer
{.is-info}
2021-11-04 11:33:25 +01:00
# Télécharger un objet
2021-11-04 08:48:09 +01:00
## Horizon
### Cliquez sur le bouton `Upload`, selectionnez votre fichier et renommer le si besoin
2021-11-04 08:53:14 +01:00
![infomaniak-publiccloud_2_4.png ](/images/cloud/infomaniak-public-cloud/2/infomaniak-publiccloud_2_4.png =1300x )
2021-11-04 08:48:09 +01:00
## CLI
### Envoyer un fichier
```bash
openstack object create [--name < NAME > ] < CONTAINER > < FILENAME >
```
> **--name <name>** : Téléchargez un fichier et renommez-le. Ne peut être utilisé que lors du téléchargement d'un seul objet
> **CONTAINER** : Conteneur pour le nouvel objet
> **FILENAME** : Nom du fichier local à télécharger
{.is-info}
### Envoyer un dossier
2021-11-04 09:20:52 +01:00
Pour envoyer plusieurs fichiers ou dossiers, vous pouvez utiliser un petit script comme celui ci :
```bash
#!/bin/bash
CONTAINER="$1"
FOLDER="$2"
FILESLIST=$(find $FOLDER -type f )
for FILE in $FILESLIST
do
2021-11-04 09:24:06 +01:00
openstack object create $CONTAINER $FILE > /dev/null
2021-11-04 09:20:52 +01:00
if test $? -eq 0; then
2021-11-04 09:24:06 +01:00
echo "[$(date +%Y-%m-%d_%H:%M:%S)] SendFolder ✅ $FILE has been successfully sent to $CONTAINER."
2021-11-04 09:20:52 +01:00
else
2021-11-04 09:24:06 +01:00
echo "[$(date +%Y-%m-%d_%H:%M:%S)] SendFolder ❌ ERROR : A problem was encountered during the upload of $FILE"
2021-11-04 09:20:52 +01:00
fi
done
```
Pour envoyer un dossier et ses sous dossiers :
```bash
./sendfolder.sh < CONTAINER > < FOLDER >
```
> **CONTAINER** : Conteneur pour les nouveaux objects
> **FOLDER** : Chemin du dossier local à télécharger
{.is-info}
2021-11-04 11:33:25 +01:00
### Lister les objets
2021-11-04 08:48:09 +01:00
```bash
openstack object list < CONTAINER >
```
2021-11-04 11:33:25 +01:00
> **CONTAINER** : Lister les objets de ce conteneur
2021-11-04 08:48:09 +01:00
{.is-info}
### Supprimer un fichier
```bash
openstack object delete < CONTAINER > < OBJECT >
```
2021-11-04 11:33:25 +01:00
> **CONTAINER** : Nom du container contenant l'objet
> **OBJECT** : Nom de l'objet à supprimer
2021-11-04 08:48:09 +01:00
{.is-info}