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