bcgov / bcgov/nr-rfc-admin

Make boto3 optional install

Open
#44 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Description

Frequently we re-use the object store lib to perform operations against object storage.
Currently that module is setup to mostly use the minio object storage lib when it performs operations against object storage. Minio is a easy to use and relatively small lib. Minio however does not support all the operations that the AWS boto3 lib supports and for some operations the boto3 lib is required.

boto3 is not restricted to only object storage and as such is a very large library that can result in containers ballooning in size.

This ticket will attempt to only install the components required for boto3 object storage interactions:
* evaluate whether there is an option to install boto3 as boto3[s3] or some other way to only install the components required for S3 interactions.
* evaluate install options that would restrict certain operations if boto3 is not found.
* code can detect if boto3 is installed and makes those other operation available if it is, but raises an error if that functionality is requested but has not been installed
* provide options to install the object storage util with 'base', or 'all' options. base would only install the minio components.

Link to the [nr object storage lib](https://github.com/bcgov/nr-objectstore-util)

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the linked nr-objectstore-util library and its installation configuration, then inspect how boto3 and minio are currently exposed. Define optional installation choices and the expected error when boto3-dependent operations are requested without it; done means the supported installation modes and behavior are documented and tested.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cloud
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.