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).
AWS documents dualstack variants for every S3 Express endpoint, both regional and zonal (Endpoint directory buckets, Networking for directory buckets in an AZ):
s3express-control-dualstack.<region>.amazonaws.coms3express-<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 plains3express-control.<region>.amazonaws.comentries,getS3ExpressEndpointderives zonal endpoints ass3express-<zone-id>.<region>.amazonaws.com.Unlike the regular S3 path (
getS3EndpointhonorsuseDualstackviaClient.s3DualstackEnabled, whichNew()enables by default for Amazon S3), the S3 Express path ignores the dualstack flag entirely —SetS3EnableDualstackandOptions.S3Dualstackhave 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
getS3ExpressEndpointthe same waygetS3Endpointdoes, producing:s3express-control-dualstack.<region>.amazonaws.comfor the regional endpoint,s3express-<zone-id>.dualstack.<region>.amazonaws.comfor the zonal endpoint.Related: #2293 (S3 Express endpoint selection work).