Skip to content
GO Object Store Proxy for S3 Compatible Services
Go Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmd
.gitignore
LICENSE
README.md
build.sh
goos.go

README.md

goos

go object storage proxy.

Example Usage

package main

import (
	"fmt"
	"net/http"
	"os"

	"github.com/bulldogcreative/goos"
)

type logger struct{}

func (l *logger) Print(input string) {
	fmt.Println(input)
}

func main() {
	fmt.Println("Starting")

	log := &logger{}

	g := &goos.Goos{
		KeyID:    os.Getenv("aws_access_key_id"),
		Secret:   os.Getenv("aws_secret_access_key"),
		Endpoint: "https://nyc3.digitaloceanspaces.com",
		Region:   "us-east-2",
		Bucket:   os.Getenv("aws_bucket"),
		Logger:   log,
	}

	handler := g.Handler()
	http.HandleFunc("/", handler)
	http.ListenAndServe(":8080", nil)
}

nginx config

server {
	server_name cdn.example.com;

	location / {
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_pass http://127.0.0.1:8080;
	}
}

systemd

step 1

Edit /lib/systemd/system/goos.service using your favorite editor.

$ vim /lib/systemd/system/goos.service

step 2

First make some edits to the snippet below, then paste it in.

[Unit]
Description=goos

[Service]
Type=simple
Restart=always
RestartSec=5s
Environment=aws_access_key_id=abcdef223
Environment=aws_secret_access_key=abcdef
Environment=aws_bucket=example-bucket
Environment=aws_endpoint=https://nyc3.digitaloceanspaces.com
Environment=aws_region=us-east-2
Environment=goos_port=8080
ExecStart=/home/user/goos

[Install]
WantedBy=multi-user.target

step 3

Then run these commands.

$ service goos start
$ service goos enable
$ service goos status

Ref: Deploying Go Apps with Systemd in 10 Minutes (without Docker).

Response Headers

Last-Modified

You can’t perform that action at this time.