Drupal & GCS écrire un fichier via le code

Voici comment écrire directement dans un Bucket Google Cloud Storage depuis un script drupal (ou une migration) via le module flysystem_gcs.

Ici une POC via un script drush : 

<?php
use League\Flysystem\Config;
$path ="test/sous-dossier";
$filename ="mon-fichier-2";
$fileContent = "Bonjour";
/** @var \Drupal\flysystem\FlysystemFactory $flyeSystemFactory */
$flySystemFactory = \Drupal::service('flysystem_factory');
/** @var \Drupal\flysystem_gcs\Flysystem\Adapter\GoogleCloudStorageAdapter $cloudStorageAdapter */
$cloudStorageAdapter = $flySystemFactory->getPlugin('cloud-storage')->getAdapter();
$cloudStorageAdapter->write("$path/$filename", $fileContent, new Config());

À noter, la clé cloud-storage, correspond à la définition dans votre fichier settings.php, dans mon cas : 

$settings['flysystem'] = [
  'cloud-storage' => [
    'driver' => 'gcs',
    'config' => [
      'bucket' => XXX,
      'keyFilePath' => XXX,
      'projectId' => XXX,
      '_localConfig' => [
        'prefix' => '',
      ],
    ],
    'cache' => true,
  ],
];

 

Ajouter un commentaire

Ne sera pas publié
CAPTCHA
Désolé, pour ça, mais c'est le seul moyen pour éviter le spam...