mirror of
https://git.mirrors.martin98.com/https://github.com/ceph/ceph-csi.git
synced 2025-08-04 14:00:41 +08:00
![dependabot[bot]](/assets/img/avatar_default.png)
Bumps [github.com/aws/aws-sdk-go-v2/service/sts](https://github.com/aws/aws-sdk-go-v2) from 1.20.0 to 1.21.0. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/main/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.20.0...service/s3/v1.21.0) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/service/sts dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
52 lines
1.3 KiB
Go
52 lines
1.3 KiB
Go
package awsrulesfn
|
|
|
|
import (
|
|
"net"
|
|
"strings"
|
|
|
|
smithyhttp "github.com/aws/smithy-go/transport/http"
|
|
)
|
|
|
|
// IsVirtualHostableS3Bucket returns if the input is a DNS compatible bucket
|
|
// name and can be used with Amazon S3 virtual hosted style addressing. Similar
|
|
// to [rulesfn.IsValidHostLabel] with the added restriction that the length of label
|
|
// must be [3:63] characters long, all lowercase, and not formatted as an IP
|
|
// address.
|
|
func IsVirtualHostableS3Bucket(input string, allowSubDomains bool) bool {
|
|
// input should not be formatted as an IP address
|
|
// NOTE: this will technically trip up on IPv6 hosts with zone IDs, but
|
|
// validation further down will catch that anyway (it's guaranteed to have
|
|
// unfriendly characters % and : if that's the case)
|
|
if net.ParseIP(input) != nil {
|
|
return false
|
|
}
|
|
|
|
var labels []string
|
|
if allowSubDomains {
|
|
labels = strings.Split(input, ".")
|
|
} else {
|
|
labels = []string{input}
|
|
}
|
|
|
|
for _, label := range labels {
|
|
// validate special length constraints
|
|
if l := len(label); l < 3 || l > 63 {
|
|
return false
|
|
}
|
|
|
|
// Validate no capital letters
|
|
for _, r := range label {
|
|
if r >= 'A' && r <= 'Z' {
|
|
return false
|
|
}
|
|
}
|
|
|
|
// Validate valid host label
|
|
if !smithyhttp.ValidHostLabel(label) {
|
|
return false
|
|
}
|
|
}
|
|
|
|
return true
|
|
}
|