

# Amazon S3


The following are the requirements and connection instructions for using Amazon Simple Storage Service (Amazon S3) with Amazon AppFlow.

**Note**  
You can use Amazon S3 as a source or a destination.

**Topics**
+ [

## Requirements
](#s3-requirements)
+ [

## Connection instructions
](#s3-setup)
+ [

## Notes
](#s3-notes)
+ [

## Supported destinations
](#s3-destinations)
+ [

## Related resources
](#s3-resources)

## Requirements
Requirements
+ Your S3 buckets must be in the same AWS Region as your console and flow.
+ If you use Amazon S3 as the data source, you must place your source files inside a folder in your S3 bucket.
+ If your source files are in CSV format, each file must have a header row. The header row is a series of field names separated by commas.
+  Each source file should not exceed 125 MB in size. However, you can upload multiple CSV/JSONL files in the source location, and Amazon AppFlow will read from all of them to transfer data over a single flow run. You can check for any applicable destination data transfer limits in [Quotas for Amazon AppFlow](service-quotas.md).
+ Amazon AppFlow does not support cross-account access to S3 buckets in order to prevent unauthorized access and potential security concerns.

## Connection instructions
Connection instructions

**To use Amazon S3 as a source or destination while creating a flow**

1. Sign in to the AWS Management Console and open the Amazon AppFlow console at [https://console.aws.amazon.com/appflow/](https://console.aws.amazon.com/appflow/).

1. Choose **Create flow**.

1. For **Flow details**, enter a name and description for the flow.

1. (Optional) To use a customer managed CMK instead of the default AWS managed CMK, choose **Data encryption**, **Customize encryption settings** and then choose an existing CMK or create a new one.

1. (Optional) To add a tag, choose **Tags**, **Add tag** and then enter the key name and value.

1. Choose **Next**.

1. Choose **Amazon S3** from the **Source name** or **Destination name** dropdown list.

1. Under **Bucket details**, select the S3 bucket that you're retrieving from or adding to. You can specify a prefix, which is equivalent to specifying a folder within the S3 bucket where your source files are located or records are to be written to the destination.

![\[Bucket details form with fields for choosing S3 bucket and entering bucket prefix.\]](http://docs.aws.amazon.com/appflow/latest/userguide/images/connection_setup-s3-console.png)


Now that you are connected to your S3 bucket, you can continue with the flow creation steps as described in [Creating flows in Amazon AppFlow](create-flow.md).

**Tip**  
If you aren’t connected successfully, ensure that you have followed the instructions in the [Requirements](#s3-requirements) section above.

## Notes
Notes
+ When you use Amazon S3 as a source, you can run schedule-triggered flows at a maximum frequency of one flow run per minute.
+ When you use Amazon S3 as a destination, the following additional settings are available.


| Setting name | Description | 
| --- | --- | 
|  **AWS Glue Data Catalog settings**  |  Catalog the data that you transfer in the AWS Glue Data Catalog. When you catalog your data, you make it easier to discover and access with AWS analytics and machine learning services. For more information, see [Cataloging the data output from an Amazon AppFlow flow](flows-catalog.md).  | 
|  **Data format preference**  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/appflow/latest/userguide/s3.html)  If you choose Parquet as the format for your destination file in Amazon S3, the option to aggregate all records into one file per flow run will not be available. When choosing Parquet, Amazon AppFlow will write the output as string, and not declare the data types as defined by the source.   | 
|  |  | 
|  **Filename preference**  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/appflow/latest/userguide/s3.html)  | 
|  **Partition and aggregation settings**  |  Organize the data that you transfer into partitions and files of a specified size. These settings can help you optimize query performance for applications that access the data. For more information, see [Partitioning and aggregating data output from an Amazon AppFlow flow](flows-partition.md).  | 

## Supported destinations


When you create a flow that uses Amazon S3 as the data source, you can set the destination to any of the following connectors: 
+ Amazon Connect
+ Amazon Honeycode
+ Amazon Redshift
+ Amazon S3
+ Marketo
+ Salesforce
+ SAP OData
+ Snowflake
+ Upsolver
+ Zendesk

You can also set the destination to any custom connectors that you create with the Amazon AppFlow Custom Connector SDKs for [ Python](https://github.com/awslabs/aws-appflow-custom-connector-python) or [Java ](https://github.com/awslabs/aws-appflow-custom-connector-java). You can download these SDKs from GitHub.

## Related resources
Related resources
+ [Amazon Simple Storage Service User Guide](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/what-is-s3.html)
+ [Amazon AppFlow now supports new data formats for ingesting files into Amazon S3](https://aws.amazon.com/about-aws/whats-new/2020/09/amazon-appflow-supports-new-data-formats-ingesting-flies-amazon-s3/) in the AWS* What’s new* blog
+ How to insert new Salesforce records with data in Amazon S3 using Amazon AppFlow  

+ How to transfer data from Slack to Amazon S3 using Amazon AppFlow  

+ How to transfer data from Google Analytics to Amazon S3 using Amazon AppFlow  

+ How to transfer data from Zendesk Support to Amazon S3 using Amazon AppFlow  
