Create a data container

Every object (file/set of files) in LABDRIVE is preserved in a Data Container. Data containers define the policies, functions, permissions and the underlying storage policy for the files they contain, and have many similarities with Amazon S3 buckets or Azure containers, as they can hold files, folders, metadata, etc.

To know more about how you can organize your content, see Organize your content

To see other available options when using containers, see Working with data containers.

It is possible to create a data container using the LABDRIVE Management Interface or using the API:

Create a data container using the Management Interface

1. Sign in to the LABDRIVE Management Interface

2. Select Containers

3. Select New Container

The New Container page opens

4. In the Container name, enter a descriptive name for the content you plan to have in your container (like "2022 Cyclotron resonance experiments"). This name allows you and other users to easily locate the container when using the LABDRIVE Management Interface.

You can leave any other field as default and select Create. LABDRIVE will now open the data container details page. If you plan to work with your data container using any of the file transfer methods LABDRIVE supports or with the LABDRIVE API, it is important that you remember the data container identifier, that is shown next to the container name.

Create a data container using the API

API examples here are just illustrative. Check the LABDRIVE API documentation for additional information and all available methods.

1. Sign in to the LABDRIVE Management Interface

2. Obtain your LABDRIVE API key by selecting your name and then Access Methods:

3. Use this method:

curl --request POST \
  --url "$your_platform_url/api/container" \
  --header "Authorization: Bearer $your_platform_api_key" \
  --form "name=My Container" \
  --form "description=Some fancy description" \
  --form container_metadata_id=1 \
  --form metadata_schema_id=1 \
  --form workflow_id=1 \
  --form archival_structure_id=1 \
  --form storage_id=1

Use:

  • Url: Your LABDRIVE address

  • Header: Your LABDRIVE API Token (add Bearer prefix)

  • Name: The name of the container that will be created

  • Description: A short description (optional)

  • Container Metadata ID: The ID of the metadata schema to use for the container's metadata

  • Metadata Schema ID: The ID of the metadata schema to use for the container's files/objects

  • Workflow ID: The ID of the workflow that you would like to associate with this container

  • Archival Structure ID: The ID of the archival node to which you would like to add this container

  • Storage ID: The ID of the storage that this container will use

If you plan to work with your data container using any of the file transfer methods LABDRIVE offers or with the LABDRIVE API, it is important that you remember the data container identifier, that is delivered in the response:

{
  "success": true,
  "result": {
    "id": "6321", //<-- this will be your container's ID
    "parent": null,
    "name": "My Container",
    "description": "Some fancy description",
    "creator": "1",
    "checked_in_user": null,
    "date_create": "2021-03-01 09:42:10.123456",
    "date_update": "2021-03-01 09:42:00",
    "file_total": "0",
    "size_total": "0",
    "archived": "0",
    "storage_id": "1",
    "container_metadata_id": "1",
    "metadata_schema_id": "1",
    "workflow_id": "1",
    "workflow_step_id": "1",
    "archival_structure_id": "1",
    "submission_area_id": null,
    "permission_source": "INHERIT"
  }
}

If you need your container metadata schemas remember you can use:

curl --request GET \
    --url "$your_platform_url/api/containers/metadata/schema" \
    --header 'Content-Type: application/json' \
    --header "authorization: Bearer $your_platform_api_key"

To get your object-level metadata schemas, you can use:

curl --request GET \
        --url "$your_platform_url/api/objects/metadata/schema" \
        --header 'Content-Type: application/json' \
        --header "authorization: Bearer $your_platform_api_key"

To get your available workflows:

curl --request GET \
        --url "$your_platform_url/api/workflow" \
        --header 'Content-Type: application/json' \
        --header "authorization: Bearer $your_platform_api_key"

Last updated