Skip to main content

A tool for storing and retrieving artifacts to a local filesystem backend storage.

Project description

Artifact Store

Tools for storing and retrieving artifacts (files and folders) on a locally accessible filesytem path.

Features and Concepts

Artifacts are accessible for both, CIs and local developments - without needing a special blob-server available.

Artifacts have meta-data, custom key-value-pairs, like expire-time and creation-time.

Artifacts can be tagged, like a latest or a version.

Artifacts can be stored compressed or as copies. When copies are retrieved, the path inside the artifact-storeage is accessed.

File access rights inside the storage-backend are handled by the filesystem and are out of scope of this library. This said, corruption done to the storage-backend can be fatal.

There is no central database for the artifact-catalog in the store. The filesystem-structure and meta-information-files alongside the artifact-archive or -folder are used to keep track.

Identification is done through naming and revisions. Revisions can be retrieved.

The artifact-store root is communicated via an environment variable or an argument to the cli-tool.

Artifacts are assigned to/stored under a namespace. A namespace is essentially a filesystem-path.

A list of folders and an exclusions list can be provided when storing and artifact.

Scripts for CMake and GitHub/GitLab Actions are provided to use the artifact-store in these environments.

Usage

After installing the project (see below), the command line tool artifact-store is available.

A storage root must be provided via the environment variable ARTIFACT_STORE_ROOT or via the argument --storage-root. Before using the a storage root, it must be initialized via

artifact-store --storage-root <path> init

or

export ARTIFACT_STORE_ROOT=<path>
artifact-store init

Once initialized, artifacts can be stored via

artifact-store store --revision <rev> --tag <tag> <namespace> <artifact-name> <paths/glob...>

and retrieved via

artifact-store retrieve --revision <rev> <namespace> <artifact-name> <target-path>

for revisions and

artifact-store retrieve --tag <tag> <namespace> <artifact-name> <target-path>

for tags.

Development

Create a virtual environment and install the dependencies:

python3 -m venv .venv
source .venv/bin/activate
pip install -e .[dev]

This installs the development dependencies, including pytest for running the tests.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

artifact_filesystem_store-0.1.0.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

artifact_filesystem_store-0.1.0-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

Details for the file artifact_filesystem_store-0.1.0.tar.gz.

File metadata

File hashes

Hashes for artifact_filesystem_store-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9d3c708fada271489969bced69e711ba1f18142a7055caf66f3d94a06c2befd0
MD5 cdf813331fc91d5313a17bb3607baca0
BLAKE2b-256 bb28854aa5afbf7ee789e92294faedd4c5637b39e18fe92fc739e0ce4fc98128

See more details on using hashes here.

File details

Details for the file artifact_filesystem_store-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for artifact_filesystem_store-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1a333c8d36c0ae71894d9d59014f20566582ab1d8f5d55f7a120d042ae60503b
MD5 354155b594b19917f7af69b58d714f17
BLAKE2b-256 9f97958ab8897b0931ccaa70ed5fa4b42e1ae98d973e9133c732ded19b9045a0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page