This commit is contained in:
Pim van Pelt
2025-12-03 00:17:43 +01:00
parent 45ee30fae1
commit d1db4d5e68
2 changed files with 23 additions and 23 deletions

View File

@@ -64,7 +64,7 @@ func processS3Bucket(s3Config *S3Config, opts *indexgen.Options) error {
// Get credentials from environment variables // Get credentials from environment variables
accessKey := os.Getenv("AWS_ACCESS_KEY_ID") accessKey := os.Getenv("AWS_ACCESS_KEY_ID")
secretKey := os.Getenv("AWS_SECRET_ACCESS_KEY") secretKey := os.Getenv("AWS_SECRET_ACCESS_KEY")
if accessKey == "" || secretKey == "" { if accessKey == "" || secretKey == "" {
return fmt.Errorf("AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables must be set") return fmt.Errorf("AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables must be set")
} }
@@ -77,8 +77,8 @@ func processS3Bucket(s3Config *S3Config, opts *indexgen.Options) error {
// Create S3 client with custom endpoint resolver // Create S3 client with custom endpoint resolver
client := s3.NewFromConfig(cfg, func(o *s3.Options) { client := s3.NewFromConfig(cfg, func(o *s3.Options) {
o.BaseEndpoint = aws.String(fmt.Sprintf("%s://%s", o.BaseEndpoint = aws.String(fmt.Sprintf("%s://%s",
map[bool]string{true: "https", false: "http"}[s3Config.UseSSL], map[bool]string{true: "https", false: "http"}[s3Config.UseSSL],
s3Config.Endpoint)) s3Config.Endpoint))
o.UsePathStyle = true // Use path-style URLs for MinIO compatibility o.UsePathStyle = true // Use path-style URLs for MinIO compatibility
}) })
@@ -126,15 +126,15 @@ func processS3Bucket(s3Config *S3Config, opts *indexgen.Options) error {
} }
entry := indexgen.FileEntry{ entry := indexgen.FileEntry{
Name: keyName, Name: keyName,
Path: keyName, Path: keyName,
IsDir: false, IsDir: false,
Size: *obj.Size, Size: *obj.Size,
ModTime: *obj.LastModified, ModTime: *obj.LastModified,
IsSymlink: false, IsSymlink: false,
IconType: indexgen.GetIconType(keyName), IconType: indexgen.GetIconType(keyName),
SizePretty: indexgen.PrettySize(*obj.Size), SizePretty: indexgen.PrettySize(*obj.Size),
ModTimeISO: obj.LastModified.Format("2006-01-02T15:04:05Z"), ModTimeISO: obj.LastModified.Format("2006-01-02T15:04:05Z"),
} }
// Set CSS class based on file type // Set CSS class based on file type

View File

@@ -150,28 +150,28 @@ func TestS3FlagHandling(t *testing.T) {
func TestMutualExclusionAndRequiredFlags(t *testing.T) { func TestMutualExclusionAndRequiredFlags(t *testing.T) {
tests := []struct { tests := []struct {
name string name string
args []string args []string
shouldExitWithError bool shouldExitWithError bool
}{ }{
{ {
name: "no flags provided", name: "no flags provided",
args: []string{"s3-genindex"}, args: []string{"s3-genindex"},
shouldExitWithError: true, shouldExitWithError: true,
}, },
{ {
name: "directory flag only", name: "directory flag only",
args: []string{"s3-genindex", "-d", "/tmp"}, args: []string{"s3-genindex", "-d", "/tmp"},
shouldExitWithError: false, shouldExitWithError: false,
}, },
{ {
name: "s3 flag only", name: "s3 flag only",
args: []string{"s3-genindex", "-s3", "http://example.com/bucket"}, args: []string{"s3-genindex", "-s3", "http://example.com/bucket"},
shouldExitWithError: false, shouldExitWithError: false,
}, },
{ {
name: "both flags provided (mutual exclusion)", name: "both flags provided (mutual exclusion)",
args: []string{"s3-genindex", "-d", "/tmp", "-s3", "http://example.com/bucket"}, args: []string{"s3-genindex", "-d", "/tmp", "-s3", "http://example.com/bucket"},
shouldExitWithError: true, shouldExitWithError: true,
}, },
} }
@@ -257,7 +257,7 @@ func TestParseS3URL(t *testing.T) {
for _, tt := range tests { for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
result, err := parseS3URL(tt.url) result, err := parseS3URL(tt.url)
if tt.hasError { if tt.hasError {
if err == nil { if err == nil {
t.Errorf("parseS3URL(%q) expected error, got nil", tt.url) t.Errorf("parseS3URL(%q) expected error, got nil", tt.url)