-
Notifications
You must be signed in to change notification settings - Fork 65
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Add S3 support #1008
base: main
Are you sure you want to change the base?
feat: Add S3 support #1008
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
a current limitation is that we need to have one shared credential for each bucket we access with this setup.
we could also make the config-file
and profile
channel-dependent but i think as a first version, this is okay, wdyt?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you would add specific config per channel what would that look like? Does it change the API much?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we could also make the
config-file
andprofile
channel-dependent
I think this comment was based on an outdated version of the code. Still, we do not support channel-specific configuration yet. Did you already think about an API @pavelzw?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
from the API side, i'm thinking of something like
#[derive(Clone, Debug)]
pub struct S3 {
auth_storage: AuthenticationStorage,
default_config: S3Config,
// prefix -> config map, overrides default_config
channel_config: HashMap<String, S3Config>,
expiration: std::time::Duration,
}
In create_s3_client
we would gather the config for the respective bucket or falling back to the default config.
It can be configured in pixi.toml
(or global config respectively)
[s3-config]
endpoint-url = "https://s3.aws..."
region = "eu-central-1"
force-path-style = false
[channel."s3://my-bucket".s3-config]
endpoint-url = "https://localhost:9000"
region = "eu-west-1"
force-path-style = true
From a pixi.toml perspective, this should be backwards compatible so I think it's fine to not implement this yet but only if the need arises.
Description
xref #960
#960 (comment)