@@ -150,9 +150,11 @@ type URLOpener struct {
150
150
}
151
151
152
152
const (
153
- sseTypeParamKey = "ssetype"
154
- kmsKeyIdParamKey = "kmskeyid"
155
- accelerateParamKey = "accelerate"
153
+ sseTypeParamKey = "ssetype"
154
+ kmsKeyIdParamKey = "kmskeyid"
155
+ accelerateParamKey = "accelerate"
156
+ usePathStyleParamkey = "use_path_style"
157
+ disableHTTPSParamKey = "disable_https"
156
158
)
157
159
158
160
func toServerSideEncryptionType (value string ) (typesv2.ServerSideEncryption , error ) {
@@ -195,13 +197,37 @@ func (o *URLOpener) OpenBucketURL(ctx context.Context, u *url.URL) (*blob.Bucket
195
197
}
196
198
197
199
if o .UseV2 {
200
+ opts := []func (* s3v2.Options ){
201
+ func (o * s3v2.Options ) {
202
+ o .UseAccelerate = accelerate
203
+ },
204
+ }
205
+ if disableHTTPSParam := q .Get (disableHTTPSParamKey ); disableHTTPSParam != "" {
206
+ q .Del (disableHTTPSParamKey )
207
+ value , err := strconv .ParseBool (disableHTTPSParam )
208
+ if err != nil {
209
+ return nil , fmt .Errorf ("invalid value for %q: %v" , disableHTTPSParamKey , err )
210
+ }
211
+ opts = append (opts , func (o * s3v2.Options ) {
212
+ o .EndpointOptions .DisableHTTPS = value
213
+ })
214
+ }
215
+ if usePathStyleParam := q .Get (usePathStyleParamkey ); usePathStyleParam != "" {
216
+ q .Del (usePathStyleParamkey )
217
+ value , err := strconv .ParseBool (usePathStyleParam )
218
+ if err != nil {
219
+ return nil , fmt .Errorf ("invalid value for %q: %v" , usePathStyleParamkey , err )
220
+ }
221
+ opts = append (opts , func (o * s3v2.Options ) {
222
+ o .UsePathStyle = value
223
+ })
224
+ }
225
+
198
226
cfg , err := gcaws .V2ConfigFromURLParams (ctx , q )
199
227
if err != nil {
200
228
return nil , fmt .Errorf ("open bucket %v: %v" , u , err )
201
229
}
202
- clientV2 := s3v2 .NewFromConfig (cfg , func (o * s3v2.Options ) {
203
- o .UseAccelerate = accelerate
204
- })
230
+ clientV2 := s3v2 .NewFromConfig (cfg , opts ... )
205
231
206
232
return OpenBucketV2 (ctx , clientV2 , u .Host , & o .Options )
207
233
}
0 commit comments