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:
|
2019-02-20 11:36:46 +01:00
|
|
|
// 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)%'
|
|
|
|
//
|
|
|
|
// ...
|