From fe06b37293f275884dfa50dedfa899a7e94ebf28 Mon Sep 17 00:00:00 2001
From: xuty <xty50337@hotmail.com>
Date: Sun, 29 Mar 2020 19:51:15 +0800
Subject: [PATCH] finish removeIncompleteUpload

---
 README.md                   |  5 ++++-
 lib/src/minio.dart          | 19 ++++++++++++++++++-
 lib/src/minio_uploader.dart |  2 +-
 3 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/README.md b/README.md
index 836c683..cb1ff60 100644
--- a/README.md
+++ b/README.md
@@ -16,7 +16,8 @@ Created from templates made available by Stagehand under a BSD-style
 | `listIncompleteUploads`	| `statObject`           	|                      	|                                         	|
 |                       	| `removeObject`         	|                      	|                                         	|
 |                       	| `removeObjects`        	|                      	|                                         	|
-|                       	| removeIncompleteUpload 	|                      	|                                         	|
+|                       	| `removeIncompleteUpload`|                      	|                                         	|
+
 
 ## Usage
 
@@ -35,3 +36,5 @@ main() {
 Please file feature requests and bugs at the [issue tracker][tracker].
 
 [tracker]: http://example.com/issues/replaceme
+
+[link text itself]: http://www.reddit.com
\ No newline at end of file
diff --git a/lib/src/minio.dart b/lib/src/minio.dart
index 134dc08..d3551de 100644
--- a/lib/src/minio.dart
+++ b/lib/src/minio.dart
@@ -351,7 +351,7 @@ class Minio {
     return result;
   }
 
-  Future<String> findUploadID(String bucket, String object) async {
+  Future<String> findUploadId(String bucket, String object) async {
     MinioInvalidBucketNameError.check(bucket);
     MinioInvalidObjectNameError.check(object);
 
@@ -817,6 +817,23 @@ class Minio {
     _regionMap.remove(bucket);
   }
 
+  Future<void> removeIncompleteUpload(String bucket, String object) async {
+    MinioInvalidBucketNameError.check(bucket);
+    MinioInvalidObjectNameError.check(object);
+
+    final uploadId = await findUploadId(bucket, object);
+    if (uploadId == null) return;
+
+    final resp = await _client.request(
+      method: 'DELETE',
+      bucket: bucket,
+      object: object,
+      queries: {'uploadId': uploadId},
+    );
+
+    validate(resp, expect: 204);
+  }
+
   Future<void> removeObject(String bucket, String object) async {
     MinioInvalidBucketNameError.check(bucket);
     MinioInvalidObjectNameError.check(object);
diff --git a/lib/src/minio_uploader.dart b/lib/src/minio_uploader.dart
index 2487c20..8c88c16 100644
--- a/lib/src/minio_uploader.dart
+++ b/lib/src/minio_uploader.dart
@@ -118,7 +118,7 @@ class MinioUploader implements StreamConsumer<List<int>> {
   }
 
   Future<void> initMultipartUpload() async {
-    uploadId = await minio.findUploadID(bucket, object);
+    uploadId = await minio.findUploadId(bucket, object);
 
     if (uploadId == null) {
       await minio.initiateNewMultipartUpload(bucket, object, metadata);
-- 
GitLab