MULTI_DOWNLOADER_ACCESS_KEY MULTI_DOWNLOADER_SECRET_KEY
Some checks reported errors
continuous-integration/drone/push Build encountered an error
Some checks reported errors
continuous-integration/drone/push Build encountered an error
This commit is contained in:
parent
bad3bf597a
commit
43fd2c26cb
@ -2,7 +2,8 @@
|
|||||||
"name": "multi-downloader-client",
|
"name": "multi-downloader-client",
|
||||||
"image": "rg.fr-par.scw.cloud/kubernetes/devcontainer:php-8.3",
|
"image": "rg.fr-par.scw.cloud/kubernetes/devcontainer:php-8.3",
|
||||||
"containerEnv": {
|
"containerEnv": {
|
||||||
"MULTI_DOWNLOADER_API_KEY": "YOUR_API_KEY",
|
"MULTI_DOWNLOADER_ACCESS_KEY": "YOUR_API_KEY",
|
||||||
|
"MULTI_DOWNLOADER_SECRET_KEY": "YOUR_API_SECRET_KEY",
|
||||||
"MULTI_DOWNLOADER_URL": "https://multi-dl.kub.nwb.fr"
|
"MULTI_DOWNLOADER_URL": "https://multi-dl.kub.nwb.fr"
|
||||||
},
|
},
|
||||||
"customizations": {
|
"customizations": {
|
||||||
|
@ -20,8 +20,9 @@ composer require nwb/multi-downloader-client
|
|||||||
## Env
|
## Env
|
||||||
The following env variables are used by default
|
The following env variables are used by default
|
||||||
```dotenv
|
```dotenv
|
||||||
MULTI_DOWNLOADER_API_KEY
|
MULTI_DOWNLOADER_ACCESS_KEY
|
||||||
MULTI_DOWNLOADER_URL
|
MULTI_DOWNLOADER_SECRET_KEY
|
||||||
|
MULTI_DOWNLOADER_URL (Utile en cas de test local. Si non précisée: https://multi-dl.kub.nwb.fr )
|
||||||
```
|
```
|
||||||
They can be overriden in the constructor
|
They can be overriden in the constructor
|
||||||
```php
|
```php
|
||||||
|
@ -6,43 +6,61 @@ class MultiDownloaderClient
|
|||||||
{
|
{
|
||||||
private string $url;
|
private string $url;
|
||||||
private string $apiKey;
|
private string $apiKey;
|
||||||
|
private string $apiSecret;
|
||||||
|
|
||||||
private array $files = [];
|
private array $files = [];
|
||||||
|
/**
|
||||||
|
* Constructeur pour initialiser la classe avec des options spécifiques.
|
||||||
|
*
|
||||||
|
* Ce constructeur accepte un tableau d'options pour configurer divers paramètres.
|
||||||
|
* - `apiKey` (string): Clé d'API nécessaire pour l'authentification. Si elle n'est pas fournie dans le tableau, elle sera récupérée de la variable d'environnement 'MULTI_DOWNLOADER_ACCESS_KEY'.
|
||||||
|
* - `apiSecret` (string): Clé secrète d'API nécessaire pour des opérations sécurisées. Si elle n'est pas fournie dans le tableau, elle sera récupérée de la variable d'environnement 'MULTI_DOWNLOADER_SECRET_KEY'.
|
||||||
|
* - `url` (string): URL de base du service de téléchargement. Si elle n'est pas fournie, elle sera d'abord recherchée dans la variable d'environnement 'MULTI_DOWNLOADER_URL', sinon l'URL par défaut 'https://multi-dl.kub.nwb.fr' sera utilisée.
|
||||||
|
*
|
||||||
|
* @param array $options Options pour configurer le constructeur.
|
||||||
|
* @throws \InvalidArgumentException Si l'`apiKey` ou l'`apiSecret` n'est pas fourni.
|
||||||
|
*/
|
||||||
public function __construct(array $options = [])
|
public function __construct(array $options = [])
|
||||||
{
|
{
|
||||||
$apiKey = $options['apiKey'] ?? getenv('MULTI_DOWNLOADER_API_KEY');
|
$apiKey = $options['apiKey'] ?? getenv('MULTI_DOWNLOADER_ACCESS_KEY');
|
||||||
|
|
||||||
if (!$apiKey) {
|
if (!$apiKey) {
|
||||||
throw new \InvalidArgumentException('API key is required');
|
throw new \InvalidArgumentException('API key is required');
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->apiKey = $apiKey;
|
$this->apiKey = $apiKey;
|
||||||
|
|
||||||
$url = $options['url'] ?? getenv('MULTI_DOWNLOADER_URL');
|
$apiSecret = $options['apiSecret'] ?? getenv('MULTI_DOWNLOADER_SECRET_KEY');
|
||||||
|
if (!$apiSecret) {
|
||||||
if (!$url) {
|
throw new \InvalidArgumentException('API secret key is required');
|
||||||
throw new \InvalidArgumentException('API URL is required');
|
|
||||||
}
|
}
|
||||||
|
$this->apiSecret = $apiSecret;
|
||||||
|
|
||||||
$this->url = $url;
|
$this->url = $options['url'] ?? getenv('MULTI_DOWNLOADER_URL') ?? 'https://multi-dl.kub.nwb.fr';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setFiles(array $files)
|
public function setFiles(array $files)
|
||||||
{
|
{
|
||||||
$this->files = [];
|
$this->files = [];
|
||||||
$this->addFiles($files);
|
$this->addFiles($files);
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function addFile(FileRequest $file)
|
public function addFile(FileRequest $file)
|
||||||
{
|
{
|
||||||
$this->files[] = $file;
|
$this->files[] = $file;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ajoute plusieurs fichiers à la liste de téléchargement.
|
||||||
|
*
|
||||||
|
* Cette méthode prend un tableau de fichiers et les ajoute un par un
|
||||||
|
* à la liste de téléchargement en utilisant la méthode `addFile`.
|
||||||
|
*
|
||||||
|
* @param array $files Tableau de fichiers à ajouter.
|
||||||
|
* @return $this L'instance actuelle pour permettre le chaînage de méthodes.
|
||||||
|
*/
|
||||||
public function addFiles(array $files)
|
public function addFiles(array $files)
|
||||||
{
|
{
|
||||||
foreach ($files as $file) {
|
foreach ($files as $file) {
|
||||||
@ -59,11 +77,29 @@ class MultiDownloaderClient
|
|||||||
}, $this->files);
|
}, $this->files);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Télécharge les fichiers et renvoie le résultat sous forme de chaîne de caractères.
|
||||||
|
*
|
||||||
|
* Cette méthode envoie la requête de téléchargement et renvoie le contenu
|
||||||
|
* téléchargé sous forme de chaîne de caractères. Idéal pour le traitement
|
||||||
|
* de données en mémoire.
|
||||||
|
*
|
||||||
|
* @return string Le contenu téléchargé sous forme de chaîne.
|
||||||
|
*/
|
||||||
public function downloadAsString(): string
|
public function downloadAsString(): string
|
||||||
{
|
{
|
||||||
return $this->sendRequest();
|
return $this->sendRequest();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Télécharge les fichiers et les enregistre dans un chemin spécifié.
|
||||||
|
*
|
||||||
|
* Cette méthode envoie la requête de téléchargement et sauvegarde le contenu
|
||||||
|
* téléchargé dans le fichier spécifié par le chemin `$path`.
|
||||||
|
*
|
||||||
|
* @param string $path Le chemin du fichier où sauvegarder le contenu téléchargé.
|
||||||
|
* @return string Réponse de la requête de téléchargement.
|
||||||
|
*/
|
||||||
public function downloadTo(string $path): string
|
public function downloadTo(string $path): string
|
||||||
{
|
{
|
||||||
$response = $this->sendRequest([
|
$response = $this->sendRequest([
|
||||||
@ -74,6 +110,15 @@ class MultiDownloaderClient
|
|||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Génère et renvoie un formulaire HTML pour le téléchargement de fichiers.
|
||||||
|
*
|
||||||
|
* Cette méthode capture la sortie du fichier 'htmlForm.php' et la renvoie
|
||||||
|
* sous forme de chaîne de caractères. Utilisée pour générer dynamiquement
|
||||||
|
* un formulaire de téléchargement dans une page web.
|
||||||
|
*
|
||||||
|
* @return string Le formulaire HTML généré pour le téléchargement.
|
||||||
|
*/
|
||||||
public function htmlForm(): string
|
public function htmlForm(): string
|
||||||
{
|
{
|
||||||
ob_start();
|
ob_start();
|
||||||
|
@ -59,7 +59,7 @@ class MultiDownloaderClientTest extends TestCase
|
|||||||
|
|
||||||
public function testApiKeyEnv()
|
public function testApiKeyEnv()
|
||||||
{
|
{
|
||||||
putenv('MULTI_DOWNLOADER_API_KEY=1234567890');
|
putenv('MULTI_DOWNLOADER_ACCESS_KEY=1234567890');
|
||||||
|
|
||||||
$client = new MultiDownloaderClient();
|
$client = new MultiDownloaderClient();
|
||||||
$apiKey = self::getProperty($client, 'apiKey');
|
$apiKey = self::getProperty($client, 'apiKey');
|
||||||
@ -89,7 +89,7 @@ class MultiDownloaderClientTest extends TestCase
|
|||||||
$this->expectException(\InvalidArgumentException::class);
|
$this->expectException(\InvalidArgumentException::class);
|
||||||
$this->expectExceptionMessage('API key is required');
|
$this->expectExceptionMessage('API key is required');
|
||||||
|
|
||||||
putenv('MULTI_DOWNLOADER_API_KEY');
|
putenv('MULTI_DOWNLOADER_ACCESS_KEY');
|
||||||
|
|
||||||
new MultiDownloaderClient();
|
new MultiDownloaderClient();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user