CoreWeave Object Storage#
CoreWeave uses an s3-compatabile storage system. This allows developers to CRUD from their CoreWeave blob stores with AWS CLIs and SDKs. In practice, a CoreWeave integration feels very much like an s3 integration.
First, follow these instructions to create a token configuration file. The file should look like this:
[default]
access_key = <your_coreweave_access_key>
secret_key = <your_coreweave_secret_key>
# The region for the host_bucket and host_base must be the same.
host_base = object.lga1.coreweave.com # instead of lga1 it could also be ord1 or las1.
host_bucket = %(bucket)s.object.lga1.coreweave.com
check_ssl_certificate = True
check_ssl_hostname = True
Take your access_key
and secret_key
from your token configuration file to create a credentials file in ~/.coreweave/credentials
.
The credentials file should look like this:
[default]
aws_access_key_id=<your_coreweave_access_key>
aws_secret_access_key=<your_coreweave_secret_key>
Create an empty config file in ~/.coreweave/config
as:
[default]
Next, create an environment variable for the endpoint url using the host_base
from your CoreWeave token configuration file:
mcli create secret env S3_ENDPOINT_URL='https://object.lga1.coreweave.com' # insead of lga1 it could also be ord1 or las1.
Now we can treat these credentials as if they are for aws s3. Run the following command:
> mcli create secret s3
? What would you like to name this secret? my-coreweave-credentials
? Where is your S3 config file located? ~/.coreweave/config
? Where is your S3 credentials file located? ~/.coreweave/credentials
✔ Created secret: my-coreweave-credentials
The values for each of these queries can be also passed as arguments using the --name
, --config-file
and --credentials-file
arguments, respectively.
Once you’ve created an S3 secret, we mount these secrets inside all of your runs and export two environment variables:
$AWS_CONFIG_FILE
: Path to your config file$AWS_SHARED_CREDENTIALS_FILE
: Path to your credentials file
A library like boto3 uses these environment variables by default to discover your s3 credentials:
import boto3
import os
# boto3 automatically pulls from $AWS_CONFIG_FILE and $AWS_SHARED_CREDENTIALS_FILE
s3 = boto3.client('s3', endpoint_url=os.environ['S3_ENDPOINT_URL'])
🙌