symfony-storage/StorageBundle/Storage.php

57 lines
1.5 KiB
PHP
Raw Normal View History

2019-02-20 11:11:38 +01:00
<?php
2019-02-20 12:12:35 +01:00
namespace Bluesquare\StorageBundle;
2019-02-20 11:11:38 +01:00
use Aws\S3\S3Client;
/**
* Interface de manipulation des stockages préconfigurés
* Usage par injection
*/
class Storage
{
2019-02-20 12:19:03 +01:00
private $user_config = [];
2019-02-20 12:30:09 +01:00
public function __construct(array $user_config = [])
2019-02-20 12:19:03 +01:00
{
$this->user_config = $user_config;
2019-02-20 12:19:17 +01:00
dump($this->user_config); die;
2019-02-20 12:19:03 +01:00
}
2019-02-20 11:11:38 +01:00
public function get($storage_name)
{
// TODO: on récupère les infos sur ce storage dans la config utilisateur (config/bluesquare/storage.yaml)
// La clef pour la configuration d'un storage devrait être : "storage.{storage_name}"
2019-02-20 12:08:40 +01:00
// dump($this); die;
2019-02-20 11:11:38 +01:00
// Si storage.{storage_name}.type == 's3' alors :
2019-02-20 11:29:03 +01:00
// return new S3Storage($storage_name, $config); // $config c'est le contenu de storage.{storage_name} sous forme de tableau
2019-02-20 11:11:38 +01:00
// Sinon :
return null; // (on ajoutera d'autres types de stockage plus tard, dont le stockage de fichier sur le serveur actuel)
}
}
2019-02-20 11:24:22 +01:00
//storage:
//photos:
// type: s3
// bucket: bluesquare.public
// region: nl-ams
// endpoint: 'https://s3.nl-ams.scw.cloud'
// credentials:
// key: '%env(MYSUPERSECRETAWSKEY)%'
// secret: '%env(MYSUPERSECRETAWSSECRET)%'
// version: lastest # optionnel
// path: '/photos' # optionnel
2019-02-20 11:24:22 +01:00
//
// files:
// type: s3
// bucket: bluesquare.private
// region: nl-ams
// endpoint: 'https://s3.nl-ams.scw.cloud'
// credentials:
// key: '%env(MYSUPERSECRETAWSKEY)%'
// secret: '%env(MYSUPERSECRETAWSSECRET)%'
//
// ...