ローカルにバックアップだと結局、マシントラブルで消え去ってしまうので S3に保存出来るようにしました。

その時に調べた、S3への上げ方を書き残します。

package main

import (
    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/credentials"
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/s3"
    "os"
    "log"
)

func main() {
    file, err := os.Open("/path/to/upload/target/file/path")
    if err != nil {
        log.Fatal(err)
    }
    defer file.Close()

    s3Config := s.Config.S3Config
    cre := credentials.NewStaticCredentials(
        "ACCESS KEY",
        "SECRET KEY",
        "")

    cli := s3.New(session.New(), &aws.Config{
        Credentials: cre,
        Region:      aws.String("ap-northeast-1"),
    })

    _, err = cli.PutObject(&s3.PutObjectInput{
        Bucket: aws.String("bucket_name"),
        Key:    aws.String("/path/to/s3/path"),
        Body:   file,
    })
    if err != nil {
        log.Fatal(err)
    }
}

IAMのアクセスキーとシークレットキーを此処に書き出します。

    cre := credentials.NewStaticCredentials(
        "ACCESS KEY",
        "SECRET KEY",
        "")

アップロード対象のリージョンとバケット

    _, err = cli.PutObject(&s3.PutObjectInput{
        Bucket: aws.String("bucket_name"),
        Key:    aws.String("/path/to/s3/path"),
        Body:   file,
    })