Web application for viewing a series of images stored in an Amazon S3 bucket.
https://github.com/JacobVorreuter/s3-image-viewer
$ heroku create
$ git push heroku master
- Register an app with Login for Amazon: http://login.amazon.com/manageApps
- Populate the Privacy Notice URL with your
http://myapp.herokuapp.com
URL - Populate the Allowed JavaScript Origins URL with your
https://myapp.herokuapp.com
URL (notice the https) - Take note of the Client ID and App ID. You'll need those in the following sections
https://console.aws.amazon.com/iam/home#roles
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::<S3_BUCKET_NAME>"
]
},
{
"Sid": "",
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::<S3_BUCKET_NAME>/*"
]
}
]
}
You can figure out your Login with Amazon User ID with this API:
curl -v -H "Authorization: bearer ACCESS_TOKEN" "https://api.amazon.com/user/profile"
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Federated": "www.amazon.com"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"www.amazon.com:user_id": "<USER_ID>",
"www.amazon.com:app_id": "<AMAZON_APP_ID>"
}
}
}
]
}
https://console.aws.amazon.com/s3/home
Navigate to your S3 bucket properties and select Add CORS Configuration
.
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedHeader>*</AllowedHeader>
<AllowedOrigin>https://myapp.herokuapp.com</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
</CORSRule>
</CORSConfiguration>
Set the following env vars
$ heroku config:add \
AMAZON_CLIENT_ID= \
AWS_ROLE_ARN= \
S3_BUCKET_NAME= \
APP_DOMAIN=myapp.herokuapp.com
Open https://myapp.herokuapp.com
in your browser (it only works via HTTPS) and login with your Amazon credentials.