From 1108cee6267eb862340ed5df77c0d6d34d23f5b6 Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Fri, 9 Sep 2022 13:33:58 -0700 Subject: [PATCH] do not add preceding '/' for putRequests (#2306) --- restapi/client-admin.go | 8 +++++--- restapi/client.go | 2 ++ restapi/user_objects.go | 5 ++++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/restapi/client-admin.go b/restapi/client-admin.go index 017bc0b9d..225c420fd 100644 --- a/restapi/client-admin.go +++ b/restapi/client-admin.go @@ -37,7 +37,7 @@ const globalAppName = "MinIO Console" // NewAdminClientWithInsecure gives a new madmin client interface either secure or insecure based on parameter func NewAdminClientWithInsecure(url, accessKey, secretKey, sessionToken string, insecure bool) (*madmin.AdminClient, *probe.Error) { - s3Client, err := s3AdminNew(&mcCmd.Config{ + admClient, err := s3AdminNew(&mcCmd.Config{ HostURL: url, AccessKey: accessKey, SecretKey: secretKey, @@ -50,8 +50,10 @@ func NewAdminClientWithInsecure(url, accessKey, secretKey, sessionToken string, return nil, err.Trace(url) } stsClient := PrepareConsoleHTTPClient(insecure) - s3Client.SetCustomTransport(stsClient.Transport) - return s3Client, nil + admClient.SetCustomTransport(stsClient.Transport) + // set user-agent to differentiate Console UI requests for auditing. + admClient.SetAppInfo("MinIO Console", pkg.Version) + return admClient, nil } // s3AdminNew returns an initialized minioAdmin structure. If debug is enabled, diff --git a/restapi/client.go b/restapi/client.go index d86346b22..2f8d3f136 100644 --- a/restapi/client.go +++ b/restapi/client.go @@ -382,6 +382,8 @@ func newMinioClient(claims *models.Principal) (*minio.Client, error) { if err != nil { return nil, err } + // set user-agent to differentiate Console UI requests for auditing. + minioClient.SetAppInfo("MinIO Console", pkg.Version) return minioClient, nil } diff --git a/restapi/user_objects.go b/restapi/user_objects.go index d5f8b4abe..1f5036e1a 100644 --- a/restapi/user_objects.go +++ b/restapi/user_objects.go @@ -800,6 +800,9 @@ func uploadFiles(ctx context.Context, client MinioClient, params objectApi.PostB return err } prefix = string(decodedPrefix) + // trim any leading '/', since that is not expected + // for any object. + prefix = strings.TrimPrefix(prefix, "/") } // parse a request body as multipart/form-data. @@ -825,7 +828,7 @@ func uploadFiles(ctx context.Context, client MinioClient, params objectApi.PostB contentType = mimedb.TypeByExtension(filepath.Ext(p.FileName())) } - _, err = client.putObject(ctx, params.BucketName, path.Join(prefix, p.FileName()), p, size, minio.PutObjectOptions{ + _, err = client.putObject(ctx, params.BucketName, path.Join(prefix, path.Clean(p.FileName())), p, size, minio.PutObjectOptions{ ContentType: contentType, DisableMultipart: true, // Do not upload as multipart stream for console uploader. })