Galaxy Community Hub

Galaxy allows a user to get /send data from/to a cloud-based storage, a functionality that is exposed via two APIs:

  • /api/cloud/storage/get [ref];
  • /api/cloud/storage/send[ref].

(A graphical user interface for these two APIs is under development.)

Note that for (data and credentials) security reasons, the get and send APIs do NOT ask for user credentials; instead, they use auto-generated/refreshed credentials (read details).

Generally, to use the get and send APIs one should take the following steps:

In the following we explain how to use the get and send APIs. Users may use their preferred method for communication with Galaxy APIs; however, for demonstration reason only we use Postman.

Get Data from Cloud

The get API allows a user to copy data from a cloud-based storage (e.g., Amazon S3, and Microsoft Azure BLOB) to a specified Galaxy history.

In general, to use this API, POST a payload with following fields to /api/cloud/storage/get.

keyrequireddescription
history_idThe ID of a history to which data should be copied from cloud.
authz_idThe ID of a cloud authorization record to be used to read data from cloud. (see this page)
bucketThe name of a bucket from which data should be read.
objectsA list of objects from the bucket that should be copied to Galaxy.

A sample payload:

{
    "history_id": "...",
    "authz_id": "...",
    "bucket": "...",
    "objects": [
        "obj1",
        "obj2",
        ...
    ]
}

Read this page for step-by-step description on how to use this API.

Send Data to Cloud

The send API allows a user to copy data from a Galaxy history to a cloud-based storage (e.g., Amazon S3, and Microsoft Azure BLOB).

In general, to use this API, POST a payload with the following fields /api/cloud/storage/send.

keyrequireddescription
history_idThe ID of a history from which data should be copied to cloud.
authz_idThe ID of a cloud authorization record to be used to write data to cloud. (see this page)
bucketThe name of a bucket to which data should be written.
dataset_idsA list of encoded dataset IDs belonging to the specified history that should be sent to the given bucket. If not provided, Galaxy sends all the datasets belonging the specified history.
overwrite_existingA boolean value. If set to “True”, and an object with same name of the dataset to be sent already exist in the bucket, Galaxy replaces the existing object with the dataset to be sent. If set to “False”, Galaxy appends datetime to the dataset name to prevent overwriting an existing object.

A sample payload:

{
    "history_id": "...",
    "authz_id": "...",
    "bucket": "..."
}

Or:

{
    "history_id": "03501d7626bd192f",
    "authz_id": "f2db41e1fa331b3e",
    "bucket": "vahid-objectstore-tests",
    "dataset_ids": [
        "0a248a1f62a0cc04",
        "03501d7626bd192f"
    ],
    "overwrite_existing": true
}

Read this page for step-by-step description on how to use this API.