File "GoogleCloudStorageServiceProvider.php"
Full Path: /home/bettaeza/flyinsyria.com/Media/CustomGcs/GoogleCloudStorageServiceProvider.php
File size: 1.63 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace Modules\Media\CustomGcs;
use Google\Cloud\Storage\StorageClient;
use Illuminate\Filesystem\FilesystemManager;
use Illuminate\Support\Arr;
class GoogleCloudStorageServiceProvider extends \Spatie\GoogleCloudStorage\GoogleCloudStorageServiceProvider
{
public function boot()
{
$factory = $this->app->make('filesystem');
/* @var FilesystemManager $factory */
$factory->extend('gcs', function ($app, $config) {
$storageClient = $this->createClient2($config);
$bucket = $storageClient->bucket($config['bucket']);
$pathPrefix = Arr::get($config, 'path_prefix');
$storageApiUri = Arr::get($config, 'storage_api_uri');
$adapter = new CustomGoogleStorageAdapter($storageClient, $bucket, $pathPrefix, $storageApiUri);
return $this->createFilesystem($adapter, $config);
});
}
/**
* Create a new StorageClient
*
* @param mixed $config
* @return \Google\Cloud\Storage\StorageClient
*/
private function createClient2($config)
{
$keyFile = Arr::get($config, 'key_file_path');
if (is_string($keyFile)) {
return new StorageClient([
'projectId' => $config['project_id'],
'keyFilePath' => $keyFile,
]);
}
if (! is_array($keyFile)) {
$keyFile = [];
}
return new StorageClient([
'projectId' => $config['project_id'],
'keyFile' => array_merge(["project_id" => $config['project_id']], $keyFile)
]);
}
}