aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/minio/minio-go/v7/api-put-object-file-context.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/minio/minio-go/v7/api-put-object-file-context.go')
-rw-r--r--vendor/github.com/minio/minio-go/v7/api-put-object-file-context.go64
1 files changed, 64 insertions, 0 deletions
diff --git a/vendor/github.com/minio/minio-go/v7/api-put-object-file-context.go b/vendor/github.com/minio/minio-go/v7/api-put-object-file-context.go
new file mode 100644
index 0000000..4d29dfc
--- /dev/null
+++ b/vendor/github.com/minio/minio-go/v7/api-put-object-file-context.go
@@ -0,0 +1,64 @@
1/*
2 * MinIO Go Library for Amazon S3 Compatible Cloud Storage
3 * Copyright 2017 MinIO, Inc.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18package minio
19
20import (
21 "context"
22 "mime"
23 "os"
24 "path/filepath"
25
26 "github.com/minio/minio-go/v7/pkg/s3utils"
27)
28
29// FPutObject - Create an object in a bucket, with contents from file at filePath. Allows request cancellation.
30func (c *Client) FPutObject(ctx context.Context, bucketName, objectName, filePath string, opts PutObjectOptions) (info UploadInfo, err error) {
31 // Input validation.
32 if err := s3utils.CheckValidBucketName(bucketName); err != nil {
33 return UploadInfo{}, err
34 }
35 if err := s3utils.CheckValidObjectName(objectName); err != nil {
36 return UploadInfo{}, err
37 }
38
39 // Open the referenced file.
40 fileReader, err := os.Open(filePath)
41 // If any error fail quickly here.
42 if err != nil {
43 return UploadInfo{}, err
44 }
45 defer fileReader.Close()
46
47 // Save the file stat.
48 fileStat, err := fileReader.Stat()
49 if err != nil {
50 return UploadInfo{}, err
51 }
52
53 // Save the file size.
54 fileSize := fileStat.Size()
55
56 // Set contentType based on filepath extension if not given or default
57 // value of "application/octet-stream" if the extension has no associated type.
58 if opts.ContentType == "" {
59 if opts.ContentType = mime.TypeByExtension(filepath.Ext(filePath)); opts.ContentType == "" {
60 opts.ContentType = "application/octet-stream"
61 }
62 }
63 return c.PutObject(ctx, bucketName, objectName, fileReader, fileSize, opts)
64}