> For the complete documentation index, see [llms.txt](https://docs.nuvolos.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nuvolos.com/how-to-guides/common-workflows/working-with-files.md).

# Working with files

<mark style="color:$primary;">**Outcome**</mark>\
You add files to your instance - by upload, Git clone, direct download, or external storage mount.

<mark style="color:$primary;">**Before you start**</mark>

* You hold at least the **Instance Editor** role in the target instance.
* You are in the Current state of the instance - files cannot be modified in a snapshot view.
* You know where your source data currently lives (local machine, Git repository, public URL, or external storage).

Files in Nuvolos live inside an Instance, accessible from the Files view in the sidebar and from inside any application running in that instance. The procedures below work the same way for any role - what differs is the typical use case (instructors uploading teaching materials, students working on assignments, researchers adding code and data).

### Upload files via the web interface

The simplest path for individual files:

{% stepper %}
{% step %}
Navigate to the space and instance where you want the file.
{% endstep %}

{% step %}
On the sidebar, click the folder icon to open the Files view.
{% endstep %}

{% step %}
On the top left, click **UPLOAD** and choose your file.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
The web UI uploads individual files. To upload a folder, compress it locally first (`.zip` or `.tar.gz`), upload the archive, then extract it from the ... Actions menu in the Files view. Supported archive formats include `zip`, `tar`, `tar.gz`, `bz2`, and `tgz`.
{% endhint %}

### Clone a Git repository

Best when your code is already version-controlled. Open a terminal in any application and clone normally:

<pre class="language-sql" data-overflow="wrap"><code class="lang-sql"><strong>git clone &#x3C;repository-url>
</strong></code></pre>

If the repository is private, generate an SSH key inside the application and add the public key to the repository's accepted keys. The Nuvolos-generated key persists in the Instance, so cloning continues to work for future sessions.

### Download directly from the internet

Skip your local machine when the data is already at a public URL. From a terminal in any application:

{% code overflow="wrap" %}

```sql
wget <url>
```

{% endcode %}

You can also use curl, or any API call from a Python or R script that downloads to disk. The `wget` command is available in every Nuvolos application by default.

### Mount external storage

If your data lives in cloud storage you already use, mount it as a folder in your instance rather than copying. Most well-known storage services are supported via [rclone](https://rclone.org/overview/):

* Amazon S3
* Azure files
* Dropbox
* Google Drive
* Box
* SharePoint Online

Setup uses the [rclone mount add-on](/reference/applications/add-ons/rclone-mount-add-on.md). For specific guidance on the more common services, see the dedicated reference pages: [Dropbox](/reference/file-system-and-storage/mount-dropbox.md), [S3 buckets](/reference/file-system-and-storage/access-s3-buckets-with-rclone.md), [SSHFS](/reference/file-system-and-storage/access-remote-files-with-sshfs.md), and [SharePoint Online](/reference/file-system-and-storage/access-files-on-sharepoint-online.md).

### Larger datasets

For datasets that don't fit comfortably on the per-instance file system (typically above 100 GB), see [Reference › File Storage](/reference/file-system-and-storage/large-file-storage.md) for Large File Storage.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.nuvolos.com/how-to-guides/common-workflows/working-with-files.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
