Source code for gptcache.manager.object_data.manager
from gptcache.utils.error import NotFoundError
[docs]class ObjectBase:
"""
ObjectBase to manager the object storage.
Generate specific ObjectStorage with the configuration. For example, setting for
`ObjectBase` (with `name`) to manage LocalObjectStorage, S3 object storage.
:param name: the name of the object storage, it is support 'local', 's3'.
:type name: str
:param path: the cache root of the LocalObjectStorage.
:type path: str
:param bucket: the bucket of s3.
:type bucket: str
:param path_prefix: s3 object prefix.
:type path_prefix: str
:param access_key: the access_key of s3.
:type access_key: str
:param secret_key: the secret_key of s3.
:type secret_key: str
:return: ObjectStorage.
Example:
.. code-block:: python
from gptcache.manager import ObjectBase
obj_storage = ObjectBase('local', path='./')
"""
def __init__(self):
raise EnvironmentError(
"CacheBase is designed to be instantiated, please using the `CacheBase.get(name)`."
)
[docs] @staticmethod
def get(name, **kwargs):
if name == "local":
from gptcache.manager.object_data.local_storage import LocalObjectStorage # pylint: disable=import-outside-toplevel
object_base = LocalObjectStorage(kwargs.get("path", "./local_obj"))
elif name == "s3":
from gptcache.manager.object_data.s3_storage import S3Storage # pylint: disable=import-outside-toplevel
object_base = S3Storage(kwargs.get("path_prefix"), kwargs.get("bucket"),
kwargs.get("access_key"), kwargs.get("secret_key"),
kwargs.get("endpoint"))
else:
raise NotFoundError("object store", name)
return object_base