Merge branch 'main' of ssh://git.nwb.fr:22050/modules-communs-php/multi-downloader-client
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
commit
ee178eec92
74
README.md
74
README.md
@ -1,8 +1,9 @@
|
||||
# multi-downloader-client
|
||||
Le module "multi-downloader-client" est une bibliothèque PHP conçue pour simplifier le téléchargement de fichiers depuis différentes sources en les regroupant dans un seul fichier ZIP. Il offre une interface intuitive pour ajouter des fichiers à télécharger, les renommer, et récupérer le fichier ZIP résultant, que ce soit sous forme de chaîne de caractères ou en l'enregistrant directement sur le serveur.
|
||||
|
||||
## Installation
|
||||
|
||||
Add repository in composer.json
|
||||
### Ajout via Composer
|
||||
Pour intégrer le "multi-downloader-client" dans votre projet, commencez par ajouter le dépôt nécessaire dans votre fichier `composer.json` :
|
||||
```json
|
||||
{
|
||||
"repositories": [{
|
||||
@ -12,36 +13,33 @@ Add repository in composer.json
|
||||
]
|
||||
}
|
||||
```
|
||||
Then run composer require
|
||||
Exécutez ensuite la commande suivante pour installer le module :
|
||||
```bash
|
||||
composer require nwb/multi-downloader-client
|
||||
composer require nwb/multi-downloader-client:0.0.*
|
||||
```
|
||||
|
||||
## Env
|
||||
The following env variables are used by default
|
||||
```dotenv
|
||||
MULTI_DOWNLOADER_ACCESS_KEY
|
||||
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
|
||||
## Configuration
|
||||
Ce module utilise par défaut les variables d'environnement suivantes :
|
||||
- `MULTI_DOWNLOADER_ACCESS_KEY` : clé d'accès de l'API.
|
||||
- `MULTI_DOWNLOADER_SECRET_KEY` : clé secrète de l'API.
|
||||
- `MULTI_DOWNLOADER_URL` : URL du service (par défaut: `https://multi-dl.kub.nwb.fr`).
|
||||
|
||||
Ces variables peuvent être définies dans votre fichier `.env` ou directement dans les paramètres de votre serveur.
|
||||
|
||||
Pour une configuration plus spécifique, notamment pour des tests ou des cas d'usage particuliers, vous pouvez passer ces paramètres directement au constructeur :
|
||||
```php
|
||||
use Nwb\MultiDownloaderClient\MultiDownloaderClient;
|
||||
|
||||
$client = new MultiDownloaderClient([
|
||||
'apiKey' => '',
|
||||
'apiSecret' => '',
|
||||
'url' => '',
|
||||
'apiKey' => 'votre_api_key',
|
||||
'apiSecret' => 'votre_api_secret',
|
||||
'url' => 'url_custom'
|
||||
]);
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
Ajouter des fichiers
|
||||
## Utilisation Pratique
|
||||
### Ajout de Fichiers à Télécharger
|
||||
```php
|
||||
use Nwb\MultiDownloaderClient\MultiDownloaderClient;
|
||||
use Nwb\MultiDownloaderClient\FileRequest;
|
||||
|
||||
$client = new MultiDownloaderClient();
|
||||
|
||||
$client->addFiles([
|
||||
@ -50,22 +48,34 @@ $client->addFiles([
|
||||
]);
|
||||
```
|
||||
|
||||
Get zip as string
|
||||
```php
|
||||
$zip = $client->downloadAsString();
|
||||
```
|
||||
### Récupération du ZIP
|
||||
- Sous forme de chaîne de caractères :
|
||||
```php
|
||||
$zip = $client->downloadAsString();
|
||||
```
|
||||
- Enregistrement dans un fichier :
|
||||
```php
|
||||
$client->downloadTo('/tmp/my-zip.zip');
|
||||
```
|
||||
|
||||
Save zip to file (stream)
|
||||
```php
|
||||
$client->downloadTo('/tmp/my-zip.zip');
|
||||
```
|
||||
### Génération d'un Formulaire HTML pour le Téléchargement
|
||||
Cette fonctionnalité du module "multi-downloader-client" permet de générer un formulaire HTML prêt à l'emploi pour le téléchargement des fichiers que vous avez ajoutés au client. Le formulaire généré peut être intégré dans votre page web et, une fois soumis, déclenchera le téléchargement des fichiers.
|
||||
|
||||
Get html form
|
||||
Pour utiliser cette fonctionnalité, vous appelez simplement la méthode htmlForm() sur votre objet MultiDownloaderClient. Voici comment cela se fait :
|
||||
```php
|
||||
$form = $client->htmlForm();
|
||||
```
|
||||
Rename files inside zip
|
||||
|
||||
### Renommer les Fichiers dans le ZIP
|
||||
Par défaut, les fichiers téléchargés sont nommés en fonction de leur URL. Vous pouvez cependant personnaliser le nom des fichiers dans le ZIP en utilisant la méthode `name` de l'objet `FileOptions`. Cette option peut être utile lorsque plusieurs fichiers ont le même nom ou lorsque vous souhaitez simplement renommer les fichiers pour une meilleure lisibilité.
|
||||
```php
|
||||
$file = new FileRequest('http://example.com/image.png');
|
||||
$file->getFileOptions()->name('new-name.png');
|
||||
$file->getFileOptions()->name('nouveau_nom.png');
|
||||
```
|
||||
|
||||
### Fonctionnalités Avancées
|
||||
- `FileRequest` : Personnalisation des requêtes de fichier avec des méthodes comme `url`, `fallbackUrl`, et `fileOptions`.
|
||||
- `MultiDownloaderClient` : Gestion avancée des téléchargements avec des méthodes comme `setFiles`, `buildRequest`, et `sendRequest`.
|
||||
|
||||
# Licence
|
||||
Ce document et le code source qu'il décrit sont la propriété de [Nom de l'Entreprise]. Tous droits réservés. Aucune partie de ce document ou du code source ne peut être reproduite, distribuée ou transmise sous quelque forme ou par quelque moyen que ce soit, sans l'autorisation écrite préalable de l'éditeur.
|
||||
|
@ -2,7 +2,7 @@
|
||||
"name": "nwb/multi-downloader-client",
|
||||
"description": "Client for multi-downloader-service",
|
||||
"type": "library",
|
||||
"version": "0.0.6",
|
||||
"version": "0.0.7",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Nwb\\MultiDownloaderClient\\": "src/"
|
||||
@ -24,4 +24,4 @@
|
||||
"scripts": {
|
||||
"test": "phpunit"
|
||||
}
|
||||
}
|
||||
}
|
@ -130,6 +130,7 @@ class MultiDownloaderClient
|
||||
*/
|
||||
public function htmlForm(): string
|
||||
{
|
||||
$json_string = addslashes(json_encode($this->buildRequest()));
|
||||
ob_start();
|
||||
include __DIR__ . '/htmlForm.php';
|
||||
return ob_get_clean();
|
||||
|
@ -26,11 +26,8 @@ class MultiDownloaderClientTest extends TestCase
|
||||
public function testDownloadAsString()
|
||||
{
|
||||
$client = new MultiDownloaderClient(['apiKey' => 'test', 'apiSecret' => 'test']);
|
||||
|
||||
$client->setFiles($this->testFiles());
|
||||
|
||||
$response = $client->downloadAsString();
|
||||
|
||||
$md5 = md5($response);
|
||||
|
||||
$this->assertEquals('7542c2c2a0750ab9e62d50bbe83d4c1f', $md5);
|
||||
@ -39,12 +36,9 @@ class MultiDownloaderClientTest extends TestCase
|
||||
public function testDownloadTo()
|
||||
{
|
||||
$client = new MultiDownloaderClient(['apiKey' => 'test', 'apiSecret' => 'test']);
|
||||
|
||||
$path = sys_get_temp_dir() . '/testDownloadTo.zip';
|
||||
|
||||
$client->setFiles($this->testFiles());
|
||||
$client->downloadTo($path);
|
||||
|
||||
$md5 = md5_file($path);
|
||||
|
||||
$this->assertFileExists($path);
|
||||
@ -56,6 +50,7 @@ class MultiDownloaderClientTest extends TestCase
|
||||
$client = new MultiDownloaderClient(['apiKey' => 'test', 'apiSecret' => 'test']);
|
||||
$client->setFiles($this->testFiles());
|
||||
|
||||
echo $client->htmlForm($this->testFiles());
|
||||
echo $client->htmlForm();
|
||||
$this->assertTrue(true);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user