Skip to main content

Generic object storage interface and commands.

Project description

Test TestPip DeepSource

The Object IO Library and Command

Object stores (S3, Google, Azure, Minio, Swift, etc.) all have their own command line interfaces with their own conventions for accessing objects. This library and command provides a simple, uniform interface to object store facilities, both from the command line and from within Python.

Installation

    $ pip install objectio

For the Github version:

    $ pip install git+https://github.com/tmbdev/objectio.git

Documentation

ReadTheDocs

Command Line Usage

    $ obj cat az://container/blobname
    $ obj cat gs://bucket/blobname
    $ obj cat s3://bucket/blobname
    $ obj cat file:/path
    $ cat file | obj put gs://bucket/blobname

Python Usage

    import objectio

    with objectio.gopen("gs://bucket/blob", "rb") as stream:
        contents = stream.read()

New Protocols

You can define new schemes by creating a ./objectio.yaml or ~/.objectio.yaml file. For example:

    schemes:
        random:
            read:
                cmd: ["cat", "/dev/random"]

Future Extensions

The intention is to keep this library simple and always allow command line programs to be configured for I/O as needed by end users.

Additional functionality:

  • better error handling of non-zero return codes
  • obj dir az://container --format csv
  • obj del gs://container/blob
  • possibly port to Go

Note that for Python, running I/O in a separate process is preferable to using Python-native libraries, since the latter do not run concurrently. For a Go language implementation, protocol implementations using built in native client libraries are potentially useful.

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

objectio-0.2.29.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

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

objectio-0.2.29-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file objectio-0.2.29.tar.gz.

File metadata

  • Download URL: objectio-0.2.29.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.6

File hashes

Hashes for objectio-0.2.29.tar.gz
Algorithm Hash digest
SHA256 dde87388b5bc97342878264115be0960d3107da569ed5c2e9242a72924c428bb
MD5 683939d7579a5fdcbc0d633018c6e2aa
BLAKE2b-256 4d8f544dcb8717777c3552d6ac6d4a14da334da3f49810c7f04b34b3069c6411

See more details on using hashes here.

File details

Details for the file objectio-0.2.29-py3-none-any.whl.

File metadata

  • Download URL: objectio-0.2.29-py3-none-any.whl
  • Upload date:
  • Size: 7.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.6

File hashes

Hashes for objectio-0.2.29-py3-none-any.whl
Algorithm Hash digest
SHA256 2577426a393d0e8a5b27370798e493b89f2d8c5619614199ea5521e4feee6f11
MD5 5c7a67b06614f937e9a3e8497c4ad223
BLAKE2b-256 86e3a132a91c4e9fd5e59c947263c7ef4e3415640fa151344f858e2def8c1726

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