mirror of
https://github.com/minio/minio.git
synced 2025-03-30 17:23:42 -04:00
As minio-go behavior is fixed to treat empty byte arrays and nil byte arrays in the same manner. These changes are needed in minio to address the PutObject failure for S3 Gateway. Fixes: https://github.com/minio/minio/issues/4974, https://github.com/minio/minio-java/issues/615
39 lines
1.3 KiB
Go
39 lines
1.3 KiB
Go
/*
|
|
* Minio Go Library for Amazon S3 Compatible Cloud Storage (C) 2017 Minio, Inc.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
package minio
|
|
|
|
import (
|
|
"context"
|
|
"io"
|
|
)
|
|
|
|
// PutObjectWithContext - Identical to PutObject call, but accepts context to facilitate request cancellation.
|
|
func (c Client) PutObjectWithContext(ctx context.Context, bucketName, objectName string, reader io.Reader, objectSize int64,
|
|
opts PutObjectOptions) (n int64, err error) {
|
|
err = opts.validate()
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
if opts.EncryptMaterials != nil {
|
|
if err = opts.EncryptMaterials.SetupEncryptMode(reader); err != nil {
|
|
return 0, err
|
|
}
|
|
return c.putObjectMultipartStreamNoLength(ctx, bucketName, objectName, opts.EncryptMaterials, opts)
|
|
}
|
|
return c.putObjectCommon(ctx, bucketName, objectName, reader, objectSize, opts)
|
|
}
|