forked from p15670423/monkey
Island: Add IFileStorageService
This commit is contained in:
parent
3c1e25b88c
commit
80a305ea81
|
@ -1,2 +1,3 @@
|
|||
from .authentication.authentication_service import AuthenticationService
|
||||
from .authentication.json_file_user_datastore import JsonFileUserDatastore
|
||||
from .i_file_storage_service import IFileStorageService
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
import abc
|
||||
from typing import BinaryIO
|
||||
|
||||
|
||||
class IFileStorageService(metaclass=abc.ABCMeta):
|
||||
"""
|
||||
A service that allows the storage and retrieval of individual files.
|
||||
"""
|
||||
|
||||
@abc.abstractmethod
|
||||
def save_file(self, unsafe_file_name: str, file_contents: BinaryIO):
|
||||
"""
|
||||
Save a file, identified by a name
|
||||
|
||||
:param unsafe_file_name: An unsanitized file name that will identify the file
|
||||
:param file_contents: The data to be stored in the file
|
||||
"""
|
||||
pass
|
||||
|
||||
@abc.abstractmethod
|
||||
def open_file(self, unsafe_file_name: str) -> BinaryIO:
|
||||
"""
|
||||
Open a file and return a file-like object
|
||||
|
||||
:param unsafe_file_name: An unsanitized file name that identifies the file to be opened
|
||||
:return: A file-like object providing access to the file's contents
|
||||
:rtype: io.BinaryIO
|
||||
"""
|
||||
pass
|
||||
|
||||
@abc.abstractmethod
|
||||
def delete_file(self, unsafe_file_name: str):
|
||||
"""
|
||||
Delete a file
|
||||
|
||||
:param unsafe_file_name: An unsanitized file name that identifies the file to be deleted
|
||||
"""
|
||||
pass
|
||||
|
||||
@abc.abstractmethod
|
||||
def delete_all_files(self):
|
||||
"""
|
||||
Delete all files that have been stored using this service.
|
||||
"""
|
||||
pass
|
Loading…
Reference in New Issue