Skip to content

S3 Express endpoints do not support dualstack variants #2296

Description

@jiuker

AWS documents dualstack variants for every S3 Express endpoint, both regional and zonal (Endpoint directory buckets, Networking for directory buckets in an AZ):

  • Regional: s3express-control-dualstack.<region>.amazonaws.com
  • Zonal: s3express-<zone-id>.dualstack.<region>.amazonaws.com (e.g. s3express-use1-az4.dualstack.us-east-1.amazonaws.com)

minio-go currently only ever produces the non-dualstack forms:

  • awsS3ExpressEndpointMap (endpoints.go) holds the plain s3express-control.<region>.amazonaws.com entries,
  • getS3ExpressEndpoint derives zonal endpoints as s3express-<zone-id>.<region>.amazonaws.com.

Unlike the regular S3 path (getS3Endpoint honors useDualstack via Client.s3DualstackEnabled, which New() enables by default for Amazon S3), the S3 Express path ignores the dualstack flag entirely — SetS3EnableDualstack and Options.S3Dualstack have no effect on S3 Express requests. Clients on IPv6-only networks or that otherwise need the dualstack endpoints cannot get them.

Suggested fix: thread the dualstack flag into getS3ExpressEndpoint the same way getS3Endpoint does, producing:

  • s3express-control-dualstack.<region>.amazonaws.com for the regional endpoint,
  • s3express-<zone-id>.dualstack.<region>.amazonaws.com for the zonal endpoint.

Related: #2293 (S3 Express endpoint selection work).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions