From 6451a8ab753ed8369e8f1e2fcf9919301a34e83f Mon Sep 17 00:00:00 2001 From: Sorokin Max Date: Thu, 4 Apr 2024 18:59:18 +0300 Subject: [PATCH] APK Content-Type fixed --- cmd/astore/main.go | 2 ++ internal/globals/globals.go | 2 +- internal/middleware/middleware.go | 17 +++++++++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/cmd/astore/main.go b/cmd/astore/main.go index 9b86919..f4714a0 100644 --- a/cmd/astore/main.go +++ b/cmd/astore/main.go @@ -4,6 +4,7 @@ import ( "android-store/internal/api" "android-store/internal/db" "android-store/internal/globals" + "android-store/internal/middleware" models "android-store/internal/models/apk" "fmt" "log/slog" @@ -56,6 +57,7 @@ func main() { //router.Use(AddUserToCtx()) router.StaticFile("favicon.ico", "./views/favicon.ico") router.Use(static.Serve("/apps", static.LocalFile("./data/apps", false))) + router.Use(middleware.StaticApkMiddleware()) //router.Use(static.Serve("/icons", static.LocalFile("./icons", false))) router.GET("/", api.IndexHandler) //router.GET("/admin", middleware.MidAuth(auth), middleware.AddUserToCtx(), api.IndexHandler) diff --git a/internal/globals/globals.go b/internal/globals/globals.go index 44ab436..ab423de 100644 --- a/internal/globals/globals.go +++ b/internal/globals/globals.go @@ -3,7 +3,7 @@ package globals // SERVICE DESCRIPTION const ServiceFriendlyName = "Android store" const ServiceName = "android-store" -const Version = "1.1.7" +const Version = "1.1.8" // ENVIRONMENT VARIABLES CONFIGURATION STRUCTURE type ConfigStruct struct { diff --git a/internal/middleware/middleware.go b/internal/middleware/middleware.go index b5dc145..473ea2b 100644 --- a/internal/middleware/middleware.go +++ b/internal/middleware/middleware.go @@ -1,5 +1,22 @@ package middleware +import ( + "strings" + + "github.com/gin-gonic/gin" +) + +func StaticApkMiddleware() gin.HandlerFunc { + return func(c *gin.Context) { + // Apply the Cache-Control header to the static files + if strings.HasPrefix(c.Request.URL.Path, "/apps/") { + c.Header("Content-Type", "application/vnd.android.package-archive") + } + // Continue to the next middleware or handler + c.Next() + } +} + /* import ( "context"