sintonia/airtime_mvc/application/cloud_storage/ProxyStorageBackend.php

56 lines
1.4 KiB
PHP

<?php
/**
*
* Controls access to the storage backend class where a file is stored.
*
*/
class ProxyStorageBackend extends StorageBackend
{
private $storageBackend;
/**
* Receives the file's storage backend and instantiates the appropriate
* object.
*/
public function __construct($storageBackend)
{
$CC_CONFIG = Config::getConfig();
// The storage backend in the airtime.conf directly corresponds to
// the name of the class that implements it, so we can create the
// right backend object dynamically:
if ($storageBackend == "file") {
$this->storageBackend = new FileStorageBackend();
} else {
$this->storageBackend = new $storageBackend($CC_CONFIG[$storageBackend]);
}
}
public function getAbsoluteFilePath($resourceId)
{
return $this->storageBackend->getAbsoluteFilePath($resourceId);
}
public function getDownloadURLs($resourceId, $contentDispositionFilename)
{
return $this->storageBackend->getDownloadURLs($resourceId, $contentDispositionFilename);
}
public function deletePhysicalFile($resourceId)
{
$this->storageBackend->deletePhysicalFile($resourceId);
}
public function deleteAllCloudFileObjects()
{
$this->storageBackend->deleteAllCloudFileObjects();
}
public function getFilePrefix()
{
return $this->storageBackend->getFilePrefix();
}
}