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

# Amazon S3 integration

> Upload Octoparse export files to Amazon S3 — IAM permissions, Access Key setup, file naming and overwrite behavior.

Upload scraped data directly to an Amazon S3 bucket. Multiple file formats are supported.

## Prerequisites

* Octoparse Professional plan or above
* An AWS account with the target S3 bucket already created
* An IAM user with `s3:PutObject` permission on the target bucket

***

## Configure IAM permissions

Octoparse uses an Access Key to write to S3 — create a dedicated IAM user and grant only the minimum required permissions.

Minimum-permission policy example:

```json theme={null}
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:PutObject"],
      "Resource": "arn:aws:s3:::your-bucket-name/*"
    }
  ]
}
```

After creating the IAM user, generate an Access Key in **Security credentials** and save the Access Key ID and Secret Access Key.

***

## Configure the export

Fill in the export settings in the following order:

**Configuration name**

Give the config a name so you can reuse it later. The dropdown lets you pick an existing config or type a new name to create one.

**Connection details**

| Field | Description |
| - | - |
| Authentication | Authentication method — currently only Access key |
| Access key ID | The IAM user's Access Key ID |
| Secret access key | The IAM user's Secret Access Key |
| Service area | AWS region (pick from the dropdown) |
| Bucket | Target bucket name |

> **Security:** the Access Key has write permission on the target bucket. Don't share it or commit it to a code repository, and rotate it periodically.

**Export data as**

Pick the upload file format: Excel, CSV, HTML, JSON, or XML.

**File naming settings**

| Option | Description |
| - | - |
| Same as task name | Filename matches the task name; repeated exports overwrite |
| Append current timestamp to task name | Each export creates a new file, keeping history |
| Use a custom name | Specify the filename manually |

**When a file with the same name already exists**

| Option | Description |
| - | - |
| Create a new file with current timestamp | Keeps the original; new file gets a timestamp suffix |
| Replace the existing file | Overwrites the original |
| Append new data to the existing file | Appends to the existing file (CSV / Excel only) |

Click **Confirm** to save the config and start the export.

***

## Common errors

| Error | Cause | Fix |
| - | - | - |
| `InvalidKeySecret` | Wrong Access Key ID or Secret Access Key | Re-verify credentials |
| `NoSuchBucket` | Bucket name wrong or doesn't exist | Confirm the bucket name |
| `PermissionDenied` | Insufficient IAM permissions | Check the IAM policy includes `s3:PutObject` |
| `IllegalLocation` | Bucket region doesn't match Service area | Select the bucket's actual region |
| `FormatError` | Configuration malformed | Verify every field is filled in |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.