nordsoftware/lumen-file-manager

View on GitHub
src/Contracts/FileManager.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php namespace Nord\Lumen\FileManager\Contracts;

use Nord\Lumen\FileManager\Exceptions\AdapterException;
use Nord\Lumen\FileManager\Exceptions\StorageException;
use Symfony\Component\HttpFoundation\File\File as FileInfo;

interface FileManager
{

    /**
     * @param FileInfo $info
     * @param array    $options
     *
     * @return File
     * @throws AdapterException
     * @throws StorageException
     */
    public function saveFile(FileInfo $info, array $options = []);


    /**
     * @param string $id
     *
     * @return File
     */
    public function getFile($id);

    /**
     * @param File  $file
     * @param array $options
     *
     * @return string
     */
    public function getFilePath(File $file, array $options = []);


    /**
     * @param File  $file
     * @param array $options
     *
     * @return string
     */
    public function getFileUrl(File $file, array $options = []);


    /**
     * @param File  $file
     * @param array $options
     *
     * @return string
     * @throws AdapterException
     */
    public function getPresignedFileUrl(File $file, array $options = []);


    /**
     * @param File $file
     *
     * @throws AdapterException
     * @throws StorageException
     */
    public function deleteFile(File $file);
}