mirror of
https://github.com/minio/minio.git
synced 2025-01-12 15:33:22 -05:00
web: Add targetProto for putObjectURL,getObjectURL SSL requests.
Currently the default request was based on the 'minio server' SSL configuration. But inside a proxy this is invalid browser needs to send which protocol it wishes the PresignedURL should be generated for.
This commit is contained in:
parent
a18620fa86
commit
4db136c19c
@ -52,7 +52,6 @@ type webAPI struct {
|
|||||||
Client minio.CloudStorageClient
|
Client minio.CloudStorageClient
|
||||||
|
|
||||||
// private params.
|
// private params.
|
||||||
inSecure bool // Enabled if TLS is false.
|
|
||||||
apiAddress string // api destination address.
|
apiAddress string // api destination address.
|
||||||
// accessKeys kept to be used internally.
|
// accessKeys kept to be used internally.
|
||||||
accessKeyID string
|
accessKeyID string
|
||||||
@ -130,7 +129,6 @@ func initWeb(conf cloudServerConfig) *webAPI {
|
|||||||
FSPath: conf.Path,
|
FSPath: conf.Path,
|
||||||
AccessLog: conf.AccessLog,
|
AccessLog: conf.AccessLog,
|
||||||
Client: client,
|
Client: client,
|
||||||
inSecure: inSecure,
|
|
||||||
apiAddress: conf.Address,
|
apiAddress: conf.Address,
|
||||||
accessKeyID: conf.AccessKeyID,
|
accessKeyID: conf.AccessKeyID,
|
||||||
secretAccessKey: conf.SecretAccessKey,
|
secretAccessKey: conf.SecretAccessKey,
|
||||||
|
@ -242,9 +242,10 @@ func (web *webAPI) ListObjects(r *http.Request, args *ListObjectsArgs, reply *Li
|
|||||||
|
|
||||||
// PutObjectURLArgs - args to generate url for upload access.
|
// PutObjectURLArgs - args to generate url for upload access.
|
||||||
type PutObjectURLArgs struct {
|
type PutObjectURLArgs struct {
|
||||||
TargetHost string `json:"targetHost"`
|
TargetHost string `json:"targetHost"`
|
||||||
BucketName string `json:"bucketName"`
|
TargetProto string `json:"targetProto"`
|
||||||
ObjectName string `json:"objectName"`
|
BucketName string `json:"bucketName"`
|
||||||
|
ObjectName string `json:"objectName"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// PutObjectURLRep - reply for presigned upload url request.
|
// PutObjectURLRep - reply for presigned upload url request.
|
||||||
@ -258,7 +259,11 @@ func (web *webAPI) PutObjectURL(r *http.Request, args *PutObjectURLArgs, reply *
|
|||||||
if !isJWTReqAuthenticated(r) {
|
if !isJWTReqAuthenticated(r) {
|
||||||
return &json2.Error{Message: "Unauthorized request"}
|
return &json2.Error{Message: "Unauthorized request"}
|
||||||
}
|
}
|
||||||
client, e := minio.New(args.TargetHost, web.accessKeyID, web.secretAccessKey, web.inSecure)
|
|
||||||
|
// disableSSL is true if no 'https:' proto is found.
|
||||||
|
disableSSL := (args.TargetProto != "https:")
|
||||||
|
|
||||||
|
client, e := minio.New(args.TargetHost, web.accessKeyID, web.secretAccessKey, disableSSL)
|
||||||
if e != nil {
|
if e != nil {
|
||||||
return &json2.Error{Message: e.Error()}
|
return &json2.Error{Message: e.Error()}
|
||||||
}
|
}
|
||||||
@ -273,9 +278,10 @@ func (web *webAPI) PutObjectURL(r *http.Request, args *PutObjectURLArgs, reply *
|
|||||||
|
|
||||||
// GetObjectURLArgs - args to generate url for download access.
|
// GetObjectURLArgs - args to generate url for download access.
|
||||||
type GetObjectURLArgs struct {
|
type GetObjectURLArgs struct {
|
||||||
TargetHost string `json:"targetHost"`
|
TargetHost string `json:"targetHost"`
|
||||||
BucketName string `json:"bucketName"`
|
TargetProto string `json:"targetProto"`
|
||||||
ObjectName string `json:"objectName"`
|
BucketName string `json:"bucketName"`
|
||||||
|
ObjectName string `json:"objectName"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetObjectURLRep - reply for presigned download url request.
|
// GetObjectURLRep - reply for presigned download url request.
|
||||||
@ -296,7 +302,10 @@ func (web *webAPI) GetObjectURL(r *http.Request, args *GetObjectURLArgs, reply *
|
|||||||
return &json2.Error{Message: e.Error()}
|
return &json2.Error{Message: e.Error()}
|
||||||
}
|
}
|
||||||
|
|
||||||
client, e := minio.New(args.TargetHost, web.accessKeyID, web.secretAccessKey, web.inSecure)
|
// disableSSL is true if no 'https:' proto is found.
|
||||||
|
disableSSL := (args.TargetProto != "https:")
|
||||||
|
|
||||||
|
client, e := minio.New(args.TargetHost, web.accessKeyID, web.secretAccessKey, disableSSL)
|
||||||
if e != nil {
|
if e != nil {
|
||||||
return &json2.Error{Message: e.Error()}
|
return &json2.Error{Message: e.Error()}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user