# Uploading to S3
1. Create buckets with proper names. For example:
* dr9.legacysurvey.org
* dr9-north.legacysurvey.org
* dr9-south.legacysurvey.org
us-west-2 region is recommended here because it's cheap, but feel free to pick any.
2. Set bucket permission to public readable:
```
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"PublicRead",
"Effect":"Allow",
"Principal": "*",
"Action":["s3:GetObject","s3:GetObjectVersion"],
"Resource":["arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"]
}
]
}
```
3. Use `boto` or `boto3` to upload to the buckets.
Optionally, use `s3-parallel-put` because `boto` by default does not have concurrency.
```
FOLDER=0
~/s3-parallel-put --bucket=dr9-north.legacysurvey.org --bucket_region=us-west-2 --host=s3-us-west-2.amazonaws.com --put=stupid --secure --prefix $FOLDER --processes=20 --log-filename=/global/cscratch1/sd/ziyaoz/$FOLDER $FOLDER
```
4. In the case that you need to upload lots of files very quickly, you can launch a few EC2 instances, transfer tarred files from NERSC to them, and upload from there.