Make boto3 optional install
- 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