Skip to content

Commit 70aa389

Browse files
authored
Hotfix (#4)
* hotfix: Disable .Stat Signed-off-by: Ben <ben@tickets.bot> * hotfix: Enable decompression if its needed (when the server doesnt decompress) Signed-off-by: Ben <ben@tickets.bot> --------- Signed-off-by: Ben <ben@tickets.bot>
1 parent 69b19ce commit 70aa389

3 files changed

Lines changed: 21 additions & 1 deletion

File tree

cmd/logarchiver/main.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ import (
1212
"github.com/TicketsBot/common/observability"
1313
"github.com/getsentry/sentry-go"
1414
"go.uber.org/zap"
15+
16+
_ "github.com/joho/godotenv/autoload"
1517
)
1618

1719
func main() {

pkg/http/ticketget.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ func (s *Server) ticketGetHandler(ctx *gin.Context) {
4444

4545
data, err := client.GetTicket(ctx, guild, id)
4646
if err != nil {
47+
s.Logger.Error("Failed to get ticket data", zap.Error(err), zap.Uint64("guild", guild), zap.Int("id", id))
4748
var statusCode int
4849
if errors.Is(err, s3client.ErrTicketNotFound) {
4950
statusCode = 404

pkg/s3client/client.go

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@ import (
55
"context"
66
"errors"
77
"fmt"
8+
"io"
89

910
"github.com/TicketsBot-cloud/logarchiver/pkg/repository/model"
11+
"github.com/klauspost/compress/zstd"
1012
"github.com/minio/minio-go/v7"
1113
)
1214

@@ -42,7 +44,22 @@ func (c *S3Client) GetTicket(ctx context.Context, guildId uint64, ticketId int)
4244
return nil, err
4345
}
4446

45-
return buff.Bytes(), nil
47+
data := buff.Bytes()
48+
49+
// Check for zstd magic number: 0x28B52FFD
50+
if len(data) >= 4 && bytes.Equal(data[:4], []byte{0x28, 0xB5, 0x2F, 0xFD}) {
51+
// decompress manually (rare case where server didn't decompress)
52+
zstdReader, err := zstd.NewReader(bytes.NewReader(data))
53+
if err != nil {
54+
fmt.Println("Failed to create zstd reader:", err)
55+
return nil, err
56+
}
57+
defer zstdReader.Close()
58+
59+
return io.ReadAll(zstdReader)
60+
}
61+
62+
return data, nil
4663
}
4764

4865
func (c *S3Client) StoreTicket(ctx context.Context, guildId uint64, ticketId int, data []byte) error {

0 commit comments

Comments
 (0)