File Manager

Current Directory: /home/astoriaah/www/administrator/components/com_akeeba/BackupEngine/Postproc
Viewing File: /home/astoriaah/www/administrator/components/com_akeeba/BackupEngine/Postproc/Dreamobjects.php
<?php /** * Akeeba Engine * * @package akeebaengine * @copyright Copyright (c)2006-2022 Nicholas K. Dionysopoulos / Akeeba Ltd * @license GNU General Public License version 3, or later */ namespace Akeeba\Engine\Postproc; defined('AKEEBAENGINE') || die(); use Akeeba\Engine\Factory; /** * DreamObjects is a sub-case of the Amazon S3 engine with a custom endpoint * * @package Akeeba\Engine\Postproc */ class Dreamobjects extends Amazons3 { /** * Used in log messages. * * @var string */ protected $engineLogName = 'DreamObjects'; /** * The prefix to use for volatile key storage * * @var string */ protected $volatileKeyPrefix = 'volatile.postproc.dreamobjects.'; public function downloadToBrowser($remotePath) { $url = parent::downloadToBrowser($remotePath); // We need to inject the bucket name into the download path since DreamObjects doesn't use virtual-hosting-style access $engineConfig = $this->getEngineConfiguration(); $bucket = $engineConfig['bucket']; $bucket = str_replace('/', '', $bucket); $url = str_replace('https://objects-us-east-1.dream.io/', 'https://objects-us-east-1.dream.io/' . $bucket . '/', $url); return $url; } /** * Get the configuration information for this post-processing engine * * @return array */ protected function getEngineConfiguration(): array { $config = Factory::getConfiguration(); $endpoint = "objects-us-east-1.dream.io"; Factory::getLog()->info("DreamObjects: using S3 compatible endpoint $endpoint"); $ret = [ 'accessKey' => $config->get('engine.postproc.dreamobjects.accesskey', ''), 'secretKey' => $config->get('engine.postproc.dreamobjects.secretkey', ''), 'token' => '', 'useSSL' => $config->get('engine.postproc.dreamobjects.usessl', 1), 'customEndpoint' => $endpoint, 'signatureMethod' => 'v2', 'useLegacyPathAccess' => false, 'region' => '', 'disableMultipart' => 1, 'bucket' => $config->get('engine.postproc.dreamobjects.bucket', null), 'directory' => $config->get('engine.postproc.dreamobjects.directory', null), 'rrs' => 0, 'lowercase' => $config->get('engine.postproc.dreamobjects.lowercase', 1), ]; if ($ret['lowercase'] && !empty($ret['bucket'])) { $ret['bucket'] = strtolower($ret['bucket']); } return $ret; } }