2024-04-01 05:51:10 +00:00
|
|
|
// s3staticsites: servers http requests from an S3 bucket
|
|
|
|
// Copyright (C) 2024 Finn Herzfeld
|
|
|
|
|
|
|
|
// This program is free software: you can redistribute it and/or modify
|
|
|
|
// it under the terms of the GNU Affero General Public License as
|
|
|
|
// published by the Free Software Foundation, either version 3 of the
|
|
|
|
// License, or (at your option) any later version.
|
|
|
|
|
|
|
|
// This program is distributed in the hope that it will be useful,
|
|
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
// GNU Affero General Public License for more details.
|
|
|
|
|
|
|
|
// You should have received a copy of the GNU Affero General Public License
|
|
|
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
|
2024-02-18 22:30:11 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"os"
|
|
|
|
|
|
|
|
minio "github.com/minio/minio-go/v7"
|
|
|
|
"github.com/minio/minio-go/v7/pkg/credentials"
|
|
|
|
"golang.org/x/exp/slog"
|
|
|
|
)
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
minioClient, err := minio.New(config.S3Endpoint, &minio.Options{
|
|
|
|
Creds: credentials.NewStaticV4(config.AccessKeyID, config.SecretAccessKey, ""),
|
|
|
|
Secure: true,
|
|
|
|
})
|
|
|
|
if err != nil {
|
|
|
|
slog.Error("error connecting to s3 server", "error", err)
|
|
|
|
os.Exit(1)
|
|
|
|
}
|
|
|
|
|
|
|
|
if err := ListenAndServe(minioClient); err != nil {
|
|
|
|
slog.Error("error starting server", "error", err)
|
|
|
|
os.Exit(1)
|
|
|
|
}
|
|
|
|
}
|