# Data Transfer Guide: EOS ↔ PFS
This guide explains how to transfer data from **EOS** to **PFS** or from **PFS** to **EOS** using Argo Workflows.
You can use these workflows to schedule or automate periodic data movement jobs between your object storage buckets and parallel filesystem volumes.
## Prerequisites
Before running any workflow:
- You must have an existing **EOS** bucket. To create an EOS, follow this [link](/docs/tir/Datasets/QuickStart/#create-a-new-dataset)
- You must have a **PFS** filesystem created and mounted to an instance. To create a **PFS**, follow this [link](/docs/tir/pfs/)
- Ensure your access credentials:
- `bucket_access_key`
- `bucket_secret_key`
:::info
You can view the Bucket Name in the Dataset’s Overview tab.
:::
## Transfer Data: PFS → EOS
This workflow uploads files from your PFS to your EOS bucket.
### Required Parameters
| Parameter | Description |
| ------------------------- | ------------------------------------ |
| `source_fs_name` | Name of the filesystem |
| `source_path` | Path inside the filesystem to upload |
| `destination_bucket_name` | EOS bucket name |
| `destination_path` | Destination folder inside the bucket |
| `bucket_endpoint_url` | EOS endpoint (default included) |
| `bucket_access_key` | Your EOS access key |
| `bucket_secret_key` | Your EOS secret key |
### Create Pipeline
Download fs-to-eos.yaml
Now create a **pipeline** using the `fs-to-eos.yaml` file. For more details about creating **pipeline** follow this [link](/docs/tir/Pipeline/QuickStart/#create-your-first-pipeline)
:::note
Enter the correct parameters in the YAML file, such as `source_fs_name`, `source_path`, and others. You may also fill them in manually while creating a **run** for this **pipeline**.
:::
Now create a **run** for the pipeline. While creating the run, make sure to provide the correct **parameters**; otherwise, they will be automatically fetched from the YAML file if already specified.
For more details about creating a **run** for the pipeline, follow this [link](/docs/tir/Pipeline/QuickStart/#create-a-run)
Once the run completes **successfully**, you can view the execution logs by clicking the run name.
## Transfer Data: EOS → PFS
This workflow downloads data from your EOS bucket into your PFS filesystem.
### Required Parameters
| Parameter | Description |
| --------------------- | -------------------------------------- |
| `source_bucket_name` | EOS bucket name |
| `source_path` | Folder/object prefix in the bucket |
| `destination_fs_name` | Target PFS filesystem name |
| `destination_path` | Folder inside filesystem to store data |
| `bucket_endpoint_url` | EOS endpoint |
| `bucket_access_key` | EOS access key |
| `bucket_secret_key` | EOS secret key |
### Create Pipeline
Download eos-to-fs.yaml
Now create a **pipeline** using the `eos-to-fs.yaml` file. For more details about creating **pipeline**, follow this [link](/docs/tir/Pipeline/QuickStart/#create-your-first-pipeline)
:::note
Enter the correct parameters in the YAML file, such as `source_bucket_name`, `source_path`, and others. You may also fill them in manually while creating a **run** for this **pipeline**.
:::
Now create a **run** for the pipeline. While creating the run, make sure to provide the correct **parameters**; otherwise, they will be automatically fetched from the YAML file if already specified.
For more details about creating a **run** for the pipeline, follow this [link](/docs/tir/Pipeline/QuickStart/#create-a-run)
Once the run completes **successfully**, you can view the execution logs by clicking the run name.
---