> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abundly.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Cloud Storage

> Read and write files in S3-compatible object storage — AWS S3, Cloudflare R2, Google Cloud Storage, and more

Your agent can list, read, write, and delete objects in any S3-compatible bucket. Point it at AWS S3, Cloudflare R2, Google Cloud Storage (HMAC), MinIO, Backblaze B2, or any other provider that speaks the S3 API, and it can move files in and out as part of your workflows.

<Frame>
  <img src="https://mintcdn.com/abundly/_xTKRR-WiRl_-fj9/images/placeholder.png?fit=max&auto=format&n=_xTKRR-WiRl_-fj9&q=85&s=41d34d6f739a9f6a17b6a743dbfe112c" alt="Screenshot: Cloud Storage capability card in Settings → Capabilities with bucket, region/endpoint, and access keys configured" style={{ width: '400px', height: 'auto' }} width="455" height="154" data-path="images/placeholder.png" />
</Frame>

## How to enable

Go to **Settings → Capabilities** and enable **Cloud storage**. Enter an AWS region (e.g. `us-east-1`) or a full `https://` endpoint URL for other S3-compatible providers, link a workspace secret with your access key ID and secret access key, and optionally set a default bucket. If no default bucket is set, the agent includes a bucket name on every call.

## Example use cases

* **Archive attachments** — "When you receive an email with a PDF attached, upload it to the `invoices/` prefix in our S3 bucket"
* **Scheduled exports** — "Every Monday, put a CSV of last week's signups into the `reports/` folder in R2"
* **Read reference data** — "Fetch `config/pricing.json` from the bucket and summarize the current tier structure"
* **Cross-bucket cleanup** — "List objects under `tmp/` older than 30 days and delete them"
* **Cross-tool workflows** — "Download the latest export from the bucket, summarize it, and post the highlights to Slack"

## What the agent can do

| Tool                | What it does                                                         |
| ------------------- | -------------------------------------------------------------------- |
| List objects        | Browse a bucket or a prefix, with pagination for large listings      |
| Get object metadata | Inspect size, content type, and headers without downloading the body |
| Download object     | Read an object's contents into the conversation                      |
| Upload object       | Write a new object or overwrite an existing one                      |
| Delete object       | Remove an object from the bucket                                     |

<Note>
  To keep responses manageable, downloads are limited to about 5 MiB per object and uploads to about 10 MiB per object. For larger files, use tools outside the agent or split the work into smaller pieces.
</Note>

## How to connect a provider

<Steps>
  <Step title="Create access keys">
    In your provider's console, create an access key ID and secret access key scoped to the buckets you want the agent to use. Grant only the permissions you need (e.g. read-only, or read-write on a specific bucket).

    * **AWS S3** — IAM user or role with an S3 policy
    * **Cloudflare R2** — R2 API Token (S3 compatibility)
    * **Google Cloud Storage** — HMAC key for a service account
    * **MinIO / Backblaze B2 / other** — provider-specific access key and secret
  </Step>

  <Step title="Note the region or endpoint">
    For AWS S3, note the region (e.g. `us-east-1`, `eu-west-1`). For other providers, copy the full `https://` endpoint URL from the provider's dashboard.
  </Step>

  <Step title="Configure in Abundly">
    Go to **Settings → Capabilities** and enable **Cloud storage**. Paste the region or endpoint URL, create a new workspace secret with the access key ID and secret access key, and optionally set a default bucket. Credentials are stored as a workspace secret.
  </Step>
</Steps>

## Learn more

<CardGroup cols={2}>
  <Card title="Google Drive" icon="google-drive" href="/integrations/google-drive">
    Store and share files in Google Drive from the agent.
  </Card>

  <Card title="SharePoint" icon="microsoft" href="/integrations/sharepoint">
    Access Microsoft SharePoint files and libraries.
  </Card>
</CardGroup>
