core.storage#
Base module for Storage modules – modular components that store media objects in various locations.
If you are looking to implement a new storage module, you should subclass the Storage class and implement the get_cdn_url and uploadf methods.
Your module must also have two config variables ‘path_generator’ and ‘filename_generator’ which determine how the key is generated for the media object. The ‘path_generator’ and ‘filename_generator’ variables can be set to one of the following values: - ‘flat’: A flat structure with no subfolders - ‘url’: A structure based on the URL of the media object - ‘random’: A random structure
The ‘filename_generator’ variable can be set to one of the following values: - ‘random’: A random string - ‘static’: A replicable strategy such as a hash
If you don’t want to use this naming convention, you can override the set_key method in your subclass.
Module Contents#
- class core.storage.Storage#
Bases:
auto_archiver.core.BaseModuleBase class for implementing storage modules in the media archiving framework.
Subclasses must implement the get_cdn_url and uploadf methods to define their behavior.
- store(media: auto_archiver.core.Media, url: str, metadata: auto_archiver.core.Metadata = None) None#
- abstract get_cdn_url(media: auto_archiver.core.Media) str#
Returns the URL of the media object stored in the CDN.
- abstract uploadf(file: IO[bytes], key: str, **kwargs: dict) bool#
Uploads (or saves) a file to the storage service/location.
This method should not be called directly, but instead through the ‘store’ method, which sets up the media for storage.
- upload(media: auto_archiver.core.Media, **kwargs) bool#
Uploads a media object to the storage service.
This method should not be called directly, but instead be called through the ‘store’ method, which sets up the media for storage.
- set_key(media: auto_archiver.core.Media, url: str, metadata: auto_archiver.core.Metadata) None#
takes the media and optionally item info and generates a key