From 2ddf28cf24817dd16d806dca5272e23c1a8cba54 Mon Sep 17 00:00:00 2001 From: Tnix Date: Sat, 28 Sep 2024 22:07:40 +1200 Subject: [PATCH] Fully remove SQL --- .env.example | 6 +++--- Dockerfile | 1 - go.mod | 8 -------- go.sum | 19 ------------------- grpc_uploads.go | 6 +++--- main.go | 2 -- router.go | 4 ++-- 7 files changed, 8 insertions(+), 38 deletions(-) diff --git a/.env.example b/.env.example index b6be81f..0623c3d 100644 --- a/.env.example +++ b/.env.example @@ -1,9 +1,9 @@ # This is only an example. Please do not use this in a production environment! # Please copy this file to .env and change the values to your own settings. -# Uploads SQL database -DB_DRIVER="sqlite" -DB_URI="uploads.sqlite3" +# Mongo database +MONGO_URI="mongodb://127.0.0.1:27017" +MONGO_DB="meowerserver" # Redis database REDIS_URI="redis://127.0.0.1:6379/0" diff --git a/Dockerfile b/Dockerfile index eb5a7ba..8fd1fe3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,5 +8,4 @@ RUN go build -o /Meower-Uploads # Production stage FROM ubuntu:24.04 COPY --from=builder /app/Meower-Uploads /Meower-Uploads -RUN apt-get update && apt-get install -y libc6 ENTRYPOINT ["/Meower-Uploads"] diff --git a/go.mod b/go.mod index 1fdde30..21c9ec0 100644 --- a/go.mod +++ b/go.mod @@ -5,10 +5,8 @@ go 1.21.3 require ( github.com/discord/lilliput v0.0.0-20240201002527-adc97f85f75a github.com/getsentry/sentry-go v0.27.0 - github.com/glebarez/go-sqlite v1.22.0 github.com/go-chi/chi/v5 v5.0.10 github.com/joho/godotenv v1.5.1 - github.com/lib/pq v1.10.9 github.com/minio/minio-go/v7 v7.0.63 github.com/redis/go-redis/v9 v9.4.0 github.com/rs/cors v1.10.1 @@ -26,13 +24,11 @@ require ( github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/compress v1.16.7 // indirect github.com/klauspost/cpuid/v2 v2.2.5 // indirect - github.com/mattn/go-isatty v0.0.20 // indirect github.com/minio/md5-simd v1.1.2 // indirect github.com/minio/sha256-simd v1.0.1 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/montanaflynn/stats v0.7.1 // indirect - github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect github.com/rs/xid v1.5.0 // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/xdg-go/pbkdf2 v1.0.0 // indirect @@ -46,8 +42,4 @@ require ( golang.org/x/text v0.17.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de // indirect gopkg.in/ini.v1 v1.67.0 // indirect - modernc.org/libc v1.37.6 // indirect - modernc.org/mathutil v1.6.0 // indirect - modernc.org/memory v1.7.2 // indirect - modernc.org/sqlite v1.28.0 // indirect ) diff --git a/go.sum b/go.sum index e3c857c..fc0e65e 100644 --- a/go.sum +++ b/go.sum @@ -15,8 +15,6 @@ github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkp github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/getsentry/sentry-go v0.27.0 h1:Pv98CIbtB3LkMWmXi4Joa5OOcwbmnX88sF5qbK3r3Ps= github.com/getsentry/sentry-go v0.27.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= -github.com/glebarez/go-sqlite v1.22.0 h1:uAcMJhaA6r3LHMTFgP0SifzgXg46yJkgxqyuyec+ruQ= -github.com/glebarez/go-sqlite v1.22.0/go.mod h1:PlBIdHe0+aUEFn+r2/uthrWq4FxbzugL0L8Li6yQJbc= github.com/go-chi/chi/v5 v5.0.10 h1:rLz5avzKpjqxrYwXNfmjkrYYXOyLJd37pz53UFHC6vk= github.com/go-chi/chi/v5 v5.0.10/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= @@ -28,8 +26,6 @@ github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEW github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26 h1:Xim43kblpZXfIBQsbuBVKCudVG457BR2GZFIz3uw3hQ= -github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26/go.mod h1:dDKJzRmX4S37WGHujM7tX//fmj1uioxKzKxz3lo4HJo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= @@ -41,10 +37,6 @@ github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQs github.com/klauspost/cpuid/v2 v2.0.1/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg= github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= -github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= -github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= -github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34= github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM= github.com/minio/minio-go/v7 v7.0.63 h1:GbZ2oCvaUdgT5640WJOpyDhhDxvknAJU2/T3yurwcbQ= @@ -66,8 +58,6 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/redis/go-redis/v9 v9.4.0 h1:Yzoz33UZw9I/mFhx4MNrB6Fk+XHO1VukNcCa1+lwyKk= github.com/redis/go-redis/v9 v9.4.0/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M= -github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= -github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/rs/cors v1.10.1 h1:L0uuZVXIKlI1SShY2nhFfo44TYvDPQ1w4oFkUJNfhyo= github.com/rs/cors v1.10.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/rs/xid v1.5.0 h1:mKX4bl4iPYJtEIxp6CYiUuLQ/8DYMoz0PUdtGgMFRVc= @@ -111,7 +101,6 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -138,11 +127,3 @@ gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -modernc.org/libc v1.37.6 h1:orZH3c5wmhIQFTXF+Nt+eeauyd+ZIt2BX6ARe+kD+aw= -modernc.org/libc v1.37.6/go.mod h1:YAXkAZ8ktnkCKaN9sw/UDeUVkGYJ/YquGO4FTi5nmHE= -modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4= -modernc.org/mathutil v1.6.0/go.mod h1:Ui5Q9q1TR2gFm0AQRqQUaBWFLAhQpCwNcuhBOSedWPo= -modernc.org/memory v1.7.2 h1:Klh90S215mmH8c9gO98QxQFsY+W451E8AnzjoE2ee1E= -modernc.org/memory v1.7.2/go.mod h1:NO4NVCQy0N7ln+T9ngWqOQfi7ley4vpwvARR+Hjw95E= -modernc.org/sqlite v1.28.0 h1:Zx+LyDDmXczNnEQdvPuEfcFVA2ZPyaD7UCZDjef3BHQ= -modernc.org/sqlite v1.28.0/go.mod h1:Qxpazz0zH8Z1xCFyi5GSL3FzbtZ3fvbjmywNogldEW0= diff --git a/grpc_uploads.go b/grpc_uploads.go index d7d5b2b..c6e2b8e 100644 --- a/grpc_uploads.go +++ b/grpc_uploads.go @@ -3,7 +3,6 @@ package main import ( "bytes" "context" - "database/sql" "encoding/json" "fmt" "net/http" @@ -12,6 +11,7 @@ import ( "github.com/getsentry/sentry-go" pb "github.com/meower-media-co/Meower-Uploads/grpc_uploads" "go.mongodb.org/mongo-driver/bson" + "go.mongodb.org/mongo-driver/mongo" "google.golang.org/grpc/metadata" "google.golang.org/protobuf/types/known/emptypb" ) @@ -30,7 +30,7 @@ func (s grpcUploadsServer) ClaimFile(ctx context.Context, req *pb.ClaimFileReq) // Get file f, err := GetFile(req.Id) if err != nil { - if err != sql.ErrNoRows { + if err != mongo.ErrNoDocuments { sentry.CaptureException(err) } return nil, err @@ -78,7 +78,7 @@ func (s grpcUploadsServer) DeleteFile(ctx context.Context, req *pb.DeleteFileReq // Get file f, err := GetFile(req.Id) if err != nil { - if err != sql.ErrNoRows { + if err != mongo.ErrNoDocuments { sentry.CaptureException(err) } return nil, err diff --git a/main.go b/main.go index 2ce37a6..b74caaa 100644 --- a/main.go +++ b/main.go @@ -13,10 +13,8 @@ import ( "crypto/x509" "github.com/getsentry/sentry-go" - _ "github.com/glebarez/go-sqlite" "github.com/go-chi/chi/v5" "github.com/joho/godotenv" - _ "github.com/lib/pq" "github.com/minio/minio-go/v7" "github.com/minio/minio-go/v7/pkg/credentials" "github.com/redis/go-redis/v9" diff --git a/router.go b/router.go index ae0ee5f..f395d10 100644 --- a/router.go +++ b/router.go @@ -1,7 +1,6 @@ package main import ( - "database/sql" "encoding/json" "fmt" "io" @@ -12,6 +11,7 @@ import ( "github.com/getsentry/sentry-go" "github.com/go-chi/chi/v5" "github.com/minio/minio-go/v7" + "go.mongodb.org/mongo-driver/mongo" ) func uploadFile(w http.ResponseWriter, r *http.Request) { @@ -85,7 +85,7 @@ func downloadFile(w http.ResponseWriter, r *http.Request) { // Get file f, err := GetFile(chi.URLParam(r, "id")) if err != nil || f.Bucket != chi.URLParam(r, "bucket") { - if err != nil && err != sql.ErrNoRows { + if err != nil && err != mongo.ErrNoDocuments { sentry.CaptureException(err) } http.Error(w, "Not found", http.StatusNotFound)