Merge pull request #1044 from trheyi/main

Update S3 tests
This commit is contained in:
Max 2025-07-26 11:07:55 +08:00 committed by GitHub
commit 4deb845701
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 14 additions and 11 deletions

View file

@ -78,7 +78,7 @@ env:
S3_ACCESS_KEY: ${{ secrets.S3_ACCESS_KEY }} S3_ACCESS_KEY: ${{ secrets.S3_ACCESS_KEY }}
S3_SECRET_KEY: ${{ secrets.S3_SECRET_KEY }} S3_SECRET_KEY: ${{ secrets.S3_SECRET_KEY }}
S3_BUCKET: ${{ secrets.S3_BUCKET }} S3_BUCKET: ${{ secrets.S3_BUCKET }}
S3_CACHE_PATH: /tmp/s3-cache S3_PUBLIC_URL: ${{ secrets.S3_PUBLIC_URL }}
jobs: jobs:
UnitTest: UnitTest:

View file

@ -82,7 +82,7 @@ env:
S3_ACCESS_KEY: ${{ secrets.S3_ACCESS_KEY }} S3_ACCESS_KEY: ${{ secrets.S3_ACCESS_KEY }}
S3_SECRET_KEY: ${{ secrets.S3_SECRET_KEY }} S3_SECRET_KEY: ${{ secrets.S3_SECRET_KEY }}
S3_BUCKET: ${{ secrets.S3_BUCKET }} S3_BUCKET: ${{ secrets.S3_BUCKET }}
S3_CACHE_PATH: /tmp/s3-cache S3_PUBLIC_URL: ${{ secrets.S3_PUBLIC_URL }}
jobs: jobs:
unit-test: unit-test:

View file

@ -122,7 +122,7 @@ func (storage *Storage) Upload(ctx context.Context, fileID string, reader io.Rea
ContentType: aws.String(contentType), ContentType: aws.String(contentType),
}) })
if err != nil { if err != nil {
return "", fmt.Errorf("failed to upload file: %w", err) return "", fmt.Errorf("failed to upload file %s: %w", fileID, err)
} }
return fileID, nil return fileID, nil
@ -144,7 +144,7 @@ func (storage *Storage) UploadChunk(ctx context.Context, fileID string, chunkInd
ContentType: aws.String(contentType), ContentType: aws.String(contentType),
}) })
if err != nil { if err != nil {
return fmt.Errorf("failed to upload chunk %d: %w", chunkIndex, err) return fmt.Errorf("failed to upload chunk %s %d: %w", fileID, chunkIndex, err)
} }
return nil return nil
@ -182,7 +182,7 @@ func (storage *Storage) MergeChunks(ctx context.Context, fileID string, totalChu
_, err = io.Copy(&mergedContent, result.Body) _, err = io.Copy(&mergedContent, result.Body)
result.Body.Close() result.Body.Close()
if err != nil { if err != nil {
return fmt.Errorf("failed to copy chunk %d: %w", i, err) return fmt.Errorf("failed to copy chunk %s %d: %w", fileID, i, err)
} }
} }
@ -199,7 +199,7 @@ func (storage *Storage) MergeChunks(ctx context.Context, fileID string, totalChu
ContentType: aws.String(contentType), ContentType: aws.String(contentType),
}) })
if err != nil { if err != nil {
return fmt.Errorf("failed to upload merged file: %w", err) return fmt.Errorf("failed to upload merged file %s: %w", fileID, err)
} }
// Clean up chunks // Clean up chunks
@ -227,7 +227,7 @@ func (storage *Storage) Reader(ctx context.Context, fileID string) (io.ReadClose
Key: aws.String(key), Key: aws.String(key),
}) })
if err != nil { if err != nil {
return nil, fmt.Errorf("failed to get file: %w", err) return nil, fmt.Errorf("failed to get file %s: %w", fileID, err)
} }
// If the file is a gzip file, decompress it // If the file is a gzip file, decompress it
@ -256,7 +256,7 @@ func (storage *Storage) Download(ctx context.Context, fileID string) (io.ReadClo
Key: aws.String(key), Key: aws.String(key),
}) })
if err != nil { if err != nil {
return nil, "", fmt.Errorf("failed to download file: %w", err) return nil, "", fmt.Errorf("failed to download file %s: %w", fileID, err)
} }
contentType := "application/octet-stream" contentType := "application/octet-stream"

View file

@ -8,6 +8,7 @@ import (
"testing" "testing"
"time" "time"
"github.com/google/uuid"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )
@ -93,7 +94,7 @@ func TestS3Storage(t *testing.T) {
storage, err := New(getS3Config()) storage, err := New(getS3Config())
assert.NoError(t, err) assert.NoError(t, err)
fileID := "test-chunked.txt" fileID := "test-chunked-" + uuid.New().String() + ".txt"
content1 := []byte("chunk1") content1 := []byte("chunk1")
content2 := []byte("chunk2") content2 := []byte("chunk2")
@ -128,7 +129,7 @@ func TestS3Storage(t *testing.T) {
storage, err := New(getS3Config()) storage, err := New(getS3Config())
assert.NoError(t, err) assert.NoError(t, err)
fileID := "test-ops.txt" fileID := "test-ops-" + uuid.New().String() + ".txt"
content := []byte("test content") content := []byte("test content")
// Upload file // Upload file
@ -163,7 +164,9 @@ func TestS3Storage(t *testing.T) {
storage, err := New(getS3Config()) storage, err := New(getS3Config())
assert.NoError(t, err) assert.NoError(t, err)
_, _, err = storage.Download(context.Background(), "non-existent.txt") // Use UUID for non-existent file to avoid any potential conflicts
nonExistentFileID := "non-existent-" + uuid.New().String() + ".txt"
_, _, err = storage.Download(context.Background(), nonExistentFileID)
assert.Error(t, err) assert.Error(t, err)
}) })