mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-09-29 22:06:38 +08:00
35 lines
613 B
Go
35 lines
613 B
Go
// Copyright 2025 linux.do
|
|
// Copyright 2026 Arctel.net
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package upload
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
"strings"
|
|
)
|
|
|
|
const maxS3KeyLength = 1024
|
|
|
|
// ValidateS3Key validates an S3 object key for safety.
|
|
func ValidateS3Key(key string) error {
|
|
if key == "" {
|
|
return errors.New(ErrS3KeyRequired)
|
|
}
|
|
|
|
if len(key) > maxS3KeyLength {
|
|
return fmt.Errorf(ErrS3KeyTooLongFormat, maxS3KeyLength)
|
|
}
|
|
|
|
if strings.HasPrefix(key, "/") {
|
|
return errors.New(ErrS3KeyStartsWithSlash)
|
|
}
|
|
|
|
if strings.Contains(key, "\x00") {
|
|
return errors.New(ErrS3KeyContainsNullBytes)
|
|
}
|
|
|
|
return nil
|
|
}
|