From befc84658877104e7a91d3cbed5b6fd60cc7478f Mon Sep 17 00:00:00 2001
From: xuty <xty50337@hotmail.com>
Date: Tue, 31 Mar 2020 11:17:23 +0800
Subject: [PATCH] finish presignedPutObject

---
 README.md          |  6 ++++--
 lib/src/minio.dart | 16 ++++++++++++++++
 2 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index 0d2e8ee..cc0c02b 100644
--- a/README.md
+++ b/README.md
@@ -5,8 +5,8 @@ This is the _unofficial_ MinIO Dart Client SDK that provides simple APIs to acce
 | Bucket operations     	| Object operations      	| Presigned operations 	| Bucket Policy & Notification operations 	|
 |-------------------------|-------------------------|-----------------------|-------------------------------------------|
 | [makeBucket]           	| [getObject]            	| [presignedUrl]       	| getBucketNotification                   	|
-| [listBuckets]          	| [getPartialObject]     	| presignedGetObject   	| setBucketNotification                   	|
-| [bucketExists]         	| [fGetObject]           	| presignedPutObject   	| removeAllBucketNotification             	|
+| [listBuckets]          	| [getPartialObject]     	| [presignedGetObject]  | setBucketNotification                   	|
+| [bucketExists]         	| [fGetObject]           	| [presignedPutObject] 	| removeAllBucketNotification             	|
 | [removeBucket]         	| [putObject]            	| presignedPostPolicy  	| getBucketPolicy                         	|
 | [listObjects]          	| [fPutObject]           	|                      	| setBucketPolicy                         	|
 | [listObjectsV2]        	| [copyObject]           	|                      	| listenBucketNotification                	|
@@ -93,4 +93,6 @@ MIT
 [fPutObject]: https://pub.dev/documentation/minio/latest/io/MinioX/fPutObject.html
 
 [presignedUrl]: https://pub.dev/documentation/minio/latest/minio/Minio/presignedUrl.html
+[presignedGetObject]: https://pub.dev/documentation/minio/latest/minio/Minio/presignedGetObject.html
+[presignedPutObject]: https://pub.dev/documentation/minio/latest/minio/Minio/presignedPutObject.html
 
diff --git a/lib/src/minio.dart b/lib/src/minio.dart
index 83433b9..b2baeaa 100644
--- a/lib/src/minio.dart
+++ b/lib/src/minio.dart
@@ -641,6 +641,22 @@ class Minio {
     );
   }
 
+  /// Generate a presigned URL for PUT.
+  /// Using this URL, the browser can upload to S3 only with the specified object name.
+  ///
+  /// - [bucketName]: name of the bucket
+  /// - [objectName]: name of the object
+  /// - [expires]: expiry in seconds (optional, default 7 days)
+  Future<String> presignedPutObject(
+    String bucket,
+    String object, {
+    int expires,
+  }) {
+    MinioInvalidBucketNameError.check(bucket);
+    MinioInvalidObjectNameError.check(object);
+    return presignedUrl('PUT', bucket, object, expires: expires);
+  }
+
   /// Generate a generic presigned URL which can be
   /// used for HTTP methods GET, PUT, HEAD and DELETE
   ///
-- 
GitLab