HackMD/docs/guides/s3-image-upload.md
Sheogorath 97a08e7954
Add note about renaming to docs
It's way easier to add a note to the guides than to redo all the images,
etc. We have more important things to spend our time on, but if someone
wants to redo them, you are very welcome!

Signed-off-by: Sheogorath <sheogorath@shivering-isles.com>
2018-06-24 14:06:32 +02:00

2.5 KiB

Guide - Setup CodiMD S3 image upload

Note: This guide was written before the renaming. Just replace HackMD with CodiMD in your mind 😄 thanks!

  1. Go to AWS S3 console and create a new bucket.

    create-bucket

  2. Click on bucket, select Properties on the side panel, and find Permission section. Click Edit bucket policy.

    bucket-property

  3. Enter the following policy, replace bucket_name with your bucket name:

    bucket-policy-editor

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": "*",
                "Action": "s3:GetObject",
                "Resource": "arn:aws:s3:::bucket_name/uploads/*"
            }
        ]
    }
    
  4. Go to IAM console and create a new IAM user. Remember your user credentials(key/access token)

  5. Enter user page, select Permission tab, look at Inline Policies section, and click Create User Policy

    iam-user

  6. Select Custom Policy

    custom-policy

  7. Enter the following policy, replace bucket_name with your bucket name:

    review-policy

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "s3:*"
                ],
                "Resource": [
                    "arn:aws:s3:::bucket_name/uploads/*"
                ]
            }
        ]
    }
    
  8. Edit config.json and set following keys:

    {
        "production": {
            ...
            "imageuploadtype": "s3",
            "s3": {
                "accessKeyId": "YOUR_S3_ACCESS_KEY_ID",
                "secretAccessKey": "YOUR_S3_ACCESS_KEY",
                "region": "YOUR_S3_REGION" // example: ap-northeast-1
            },
            "s3bucket": "YOUR_S3_BUCKET_NAME"
        }
    }
    
  9. In additional to edit config.json directly, you could also try environment variable.