diff --git a/README.md b/README.md index 836c683008cac35d4a9aa9d4b853bc5d4014a116..cb1ff60faee39c3cefc00215086c4cbd4bd29c7b 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 134dc0854f0c05ca2a7ae3f5ddebca21e4c39720..d3551de3fb2b1a6b65a6b1e4f3438dbafce54bec 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 2487c20f7d319fc652f617d13ec664daa26330c3..8c88c16569ba0bf9776db1c67a1aa66257d54323 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);