@@ -20,40 +20,40 @@ import (
2020)
2121
2222type Config struct {
23- S3Endpoint string
24- S3Bucket string
25- S3Region string
26- ImgproxyEndpoint string
23+ S3Endpoint string
24+ S3Bucket string
25+ S3Folder string
26+ TigrisProxyBind string
2727}
2828
2929func main () {
3030 cfg := Config {
31- S3Endpoint : os .Getenv ("PROXY_S3_ENDPOINT " ),
32- S3Bucket : os .Getenv ("PROXY_S3_BUCKET " ),
33- S3Region : os .Getenv ("PROXY_S3_REGION " ),
34- ImgproxyEndpoint : os .Getenv ("PROXY_IMGPROXY_ENDPOINT " ),
31+ S3Endpoint : os .Getenv ("S3_ENDPOINT " ),
32+ S3Bucket : os .Getenv ("S3_BUCKET " ),
33+ S3Folder : os .Getenv ("S3_FOLDER " ),
34+ TigrisProxyBind : os .Getenv ("IMGPROXY_BIND " ),
3535 }
36- if cfg .S3Endpoint == "" || cfg .S3Bucket == "" || cfg . S3Region == "" {
36+ if cfg .S3Endpoint == "" || cfg .S3Bucket == "" {
3737 slog .Error ("Missing required environment variable(s)" , "config" , cfg )
3838 os .Exit (1 )
3939 }
40- if cfg .ImgproxyEndpoint == "" {
41- cfg .ImgproxyEndpoint = "http://localhost :8080"
40+ if cfg .TigrisProxyBind == "" {
41+ cfg .TigrisProxyBind = ":8080"
4242 }
4343
44- uploader := manager .NewUploader (initS3Client (cfg ), func (u * manager.Uploader ) {
45- u .PartSize = 5 * 1024 * 1024
46- u .BufferProvider = manager .NewBufferedReadSeekerWriteToPool (10 * 1024 * 1024 )
47- })
48-
4944 // Initialize the proxy
50- target , err := url .Parse (cfg . ImgproxyEndpoint )
45+ target , err := url .Parse ("http://127.0.0.1:8081" )
5146 if err != nil {
52- slog .Error ("Failed to parse imgproxy endpoint" , "error" , err )
47+ slog .Error ("Failed to parse imgproxy local endpoint" , "error" , err )
5348 os .Exit (1 )
5449 }
5550 proxy := httputil .NewSingleHostReverseProxy (target )
5651
52+ uploader := manager .NewUploader (initS3Client (cfg ), func (u * manager.Uploader ) {
53+ u .PartSize = 5 * 1024 * 1024
54+ u .BufferProvider = manager .NewBufferedReadSeekerWriteToPool (10 * 1024 * 1024 )
55+ })
56+
5757 proxy .ModifyResponse = func (resp * http.Response ) error {
5858 if resp .StatusCode == http .StatusOK {
5959 var buf bytes.Buffer
@@ -74,7 +74,7 @@ func main() {
7474 proxy .ServeHTTP (w , r )
7575 })
7676
77- if err := http .ListenAndServe (fmt .Sprintf (": %s" , os . Getenv ( "PROXY_HTTP_PORT" ) ), nil ); err != nil {
77+ if err := http .ListenAndServe (fmt .Sprintf ("%s" , cfg . TigrisProxyBind ), nil ); err != nil {
7878 slog .Error ("Server failed" , "error" , err )
7979 }
8080}
@@ -84,7 +84,7 @@ func uploadToS3(ctx context.Context, uploader *manager.Uploader, cfg Config, r i
8484
8585 _ , err := uploader .Upload (ctx , & s3.PutObjectInput {
8686 Bucket : aws .String (cfg .S3Bucket ),
87- Key : aws .String (key ),
87+ Key : aws .String (fmt . Sprintf ( "%s%s" , cfg . S3Folder , key ) ),
8888 Body : r ,
8989 })
9090
@@ -112,7 +112,7 @@ func initS3Client(cfg Config) *s3.Client {
112112
113113 svc := s3 .NewFromConfig (sdkConfig , func (o * s3.Options ) {
114114 o .BaseEndpoint = aws .String (cfg .S3Endpoint )
115- o .Region = cfg . S3Region
115+ o .Region = "auto"
116116 o .UsePathStyle = true
117117 })
118118
0 commit comments