Storing Deep Lake Data in Your Own Cloud
How to store Deep Lake data in your own cloud and manage credentials with Deep Lake
Connecting data from your own cloud and managing credentials in Deep Lake unlocks several important capabilities:
- Access to the Deep Lake UI for datasets stored in your own cloud
- Simpler access to Deep Lake datasets stored in your own cloud using the Pyton API
- No need for continuously specifying cloud access keys in Python
In order for the Deep Lake to access datasets or linked tensors stored in the user's cloud, Deep Lake must authenticate the respective cloud resources. Access can be provided using access keys or using role-based access (provisioning steps here). The video below summarizes the UI for managing your cloud credentials.

Authentication Using Managed Credentials
Datasets in Deep Lake storage are automatically connected to the Deep Lake App. Datasets in user's clouds can be connected to the App using the Python API below. Note that in order to visualize data in the Deep Lake browser application, it is necessary to enable CORS in the bucket containing any source data.
Once a dataset is connected to Deep Lake, it is assigned a Deep Lake path
hub://org_id/dataset_name
, and it can be accessed using API tokens and managed credentials from Deep Lake, without continuously having to specify cloud credentials.# Step 1: Create the dataset directly in the cloud using your own cloud creds
ds = deeplake.empty('s3://my_bucket/dataset_name', creds = {...})
# Step 2: Connect the dataset to Deep Lake and specify the managed credentials
# (creds_key) for accessing the data (See Managed Credentials above)
ds.connect(org_id = 'org_id', creds_key = 'my_creds_key', token = 'my_token')
OR
ds.connect(dest_path = 'hub://org_id/dataset_name', creds_key = 'my_creds_key', token = 'my_token')
Specifying
org_id
creates the dataset in the specified org using the dataset_name
from the cloud path. Specifying the
dest_path
creates the dataset at the org_id
and dataset_name
from the specified path. By default, any dataset created using the Deep Lake path
hub://org_id/dataset_name
, is stored in Activeloop storage. You may change the default storage location for Deep Lake paths to a location of your choice using the UI below. Subsequently, all datasets created using the Deep Lake path will be stored at the specified location. Managed credentials can be used for accessing data stored in linked tensors. Simply add the managed credentials to the dataset's
creds_keys
and assign them to each sample.ds.create_tensors('images', htype = 'link[image]', sample_compression = 'jpeg')
ds.add_creds_key('my_creds_key', managed=True)
ds.images.append(deeplake.link(link_to_sample, creds_key = 'my_creds_key')