<?php /** * Provides access to file objects stored on a specific storage backend. */ abstract class StorageBackend { private $bucket; private $accessKey; private $secretKey; /** Returns the file object's URL to the storage backend it is located on. */ abstract public function getAbsoluteFilePath($resourceId); /** Returns the file object's signed URL. The URL must be signed since they. * @param mixed $resourceId * @param mixed $contentDispositionFilename * privately stored on the storage backend. */ abstract public function getDownloadURLs($resourceId, $contentDispositionFilename); /** Deletes the file from the storage backend. */ abstract public function deletePhysicalFile($resourceId); /** Deletes all objects (files) stored on the cloud service. To be used * for station termination */ abstract public function deleteAllCloudFileObjects(); /** Get a prefix for the file (which is usually treated like a directory in the cloud) */ abstract public function getFilePrefix(); protected function getBucket() { return $this->bucket; } protected function setBucket($bucket) { $this->bucket = $bucket; } protected function getAccessKey() { return $this->accessKey; } protected function setAccessKey($accessKey) { $this->accessKey = $accessKey; } protected function getSecretKey() { return $this->secretKey; } protected function setSecretKey($secretKey) { $this->secretKey = $secretKey; } }