. * */ namespace Friendica\Model\Storage; use BadMethodCallException; use Friendica\DI; /** * External resource storage class * * This class is used to load external resources, like images. * Is not intended to be selectable by admins as default storage class. */ class ExternalResource implements IStorage { const NAME = 'ExternalResource'; /** * @inheritDoc */ public function get(string $filename) { $parts = parse_url($filename); if (empty($parts['scheme']) || empty($parts['host'])) { return ""; } $curlResult = DI::httpRequest()->get($filename); if ($curlResult->isSuccess()) { return $curlResult->getBody(); } else { return ""; } } /** * @inheritDoc */ public function put(string $data, string $filename = '') { throw new BadMethodCallException(); } public function delete(string $filename) { throw new BadMethodCallException(); } /** * @inheritDoc */ public function getOptions() { return []; } /** * @inheritDoc */ public function saveOptions(array $data) { return []; } /** * @inheritDoc */ public function __toString() { return self::NAME; } /** * @inheritDoc */ public static function getName() { return self::NAME; } }