glibe/storageconnect-ovh

Librairie pour interagir avec un object storage. Utilise l'api swift avec authentification v2 pour fonctionner avec OVH

v2.0.2 2021-02-08 08:56 UTC

README

Install

composer require glibe/storageconnect-ovh

Utilisation

Les éléments de connexion à openstack sont obligatoires. Les élèments de connexion à l'API d'OVH sont optionnels. Ils sont utilisés uniquement dans le cas d'une création de container.

La création des credentials pour utiliser l'api d'ovh se fait à cette url : https://api.ovh.com/createToken/index.cgi?GET=/&PUT=/&POST=/&DELETE=/

La librairie utilise l'authentification v3 d'openstack.

$credentials = [
    'authUrl'         => "https://auth.cloud.ovh.net/v3",
    'region'          => "GRA",
    'username'        => "your-username",
    'password'        => "your-password",
    'tenantName'      => "your-tenant-name",
];

$ovhCredentials = [
    'application_key' => "XXXXXXXX",
    'application_secret' => "XXXXXXXX",
    'api_endpoint' => "XXXXXXXX", // ovh-eu for europe
    'consumer_key' => "XXXXXXXX"
];

$obj = new Glibe\StorageConnetOvh($credentials,$ovhCredentials);

Récupération infos d'une ressource

$obj->getObject('<container-name>','<object-name>');

Création d'une ressource

$obj->createObject('<container-name>','<object-name>','<path-to-the-new-file>','<folder-base>);
Exemple

Pour créer un fichier qui aura pour référence /img/png/hello.png dans le container "cdn", la commande de création sera la suivante :

$obj->createObject('cdn','hello.png','<path-to-the-new-file>','img/png');

Création d'une container

####### Statut possible : public / private

En public cela fait container un hébergement statique. Les ressources seront alors accessiblent par une url publique. (Voir site ovh pour plus d'explication.) Par défaut le statut est à private.

####### Ovh project ID L'identifiant unique de votre projet public cloud chez OVH. Disponible sous le nom de votre proejt dans votre interface client. Si non définit, le premier projet disponible sera utilisé.

$obj->createContainer('<container-name>','<statut> (default: private)','<ovh_project_id> (default: first available)');
Exemple
$obj->createContainer('testContainer','public','90b0b09604e74e4e8ade65xxxxxxxxx');

Accès à un container

Renvoie une instance du container souhaité

$obj->getContainer('<container-name>');

Supprimer un objet

$obj->deleteObject('<container-name>','<filename>');
Exemple

Pour supprimer le fichier /img/png/hello.png dans le container "cdn", la commande de suppression sera la suivante :

$obj->deleteObject('cdn','/img/png/hello.png');