This is the unofficial MinIO Dart Client SDK that provides simple APIs to access any Amazon S3 compatible object storage server.
Bucket operations | Object operations | Presigned operations | Bucket Policy & Notification operations |
---|---|---|---|
[makeBucket] | [getObject] | [presignedUrl] | [getBucketNotification] |
[listBuckets] | [getPartialObject] | [presignedGetObject] | [setBucketNotification] |
[bucketExists] | [fGetObject] | [presignedPutObject] | [removeAllBucketNotification] |
[removeBucket] | [putObject] | [presignedPostPolicy] | [listenBucketNotification] |
[listObjects] | [fPutObject] | [getBucketPolicy] | |
[listObjectsV2] | [copyObject] | [setBucketPolicy] | |
[listIncompleteUploads] | [statObject] | ||
[listAllObjects] | [removeObject] | ||
[listAllObjectsV2] | [removeObjects] | ||
[removeIncompleteUpload] |
MinIO
final minio = Minio(
endPoint: 'play.min.io',
accessKey: 'Q3AM3UQ867SPQQA43P2F',
secretKey: 'zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG',
);
AWS S3
final minio = Minio(
endPoint: 's3.amazonaws.com',
accessKey: 'YOUR-ACCESSKEYID',
secretKey: 'YOUR-SECRETACCESSKEY',
);
Filebase
final minio = Minio(
endPoint: 's3.filebase.com',
accessKey: 'YOUR-ACCESSKEYID',
secretKey: 'YOUR-SECRETACCESSKEY',
useSSL: true,
);
File upload
import 'package:minio_new/io.dart';
import 'package:minio_new/minio.dart';
void main() async {
final minio = Minio(
endPoint: 'play.min.io',
accessKey: 'Q3AM3UQ867SPQQA43P2F',
secretKey: 'zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG',
);
await minio.fPutObject('mybucket', 'myobject', 'path/to/file');
}
For complete example, see: [example]
To use
fPutObject()
andfGetObject
, you have toimport 'package:minio_new/io.dart';
Upload with progress
import 'package:minio_new/minio.dart';
void main() async {
final minio = Minio(
endPoint: 'play.min.io',
accessKey: 'Q3AM3UQ867SPQQA43P2F',
secretKey: 'zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG',
);
await minio.putObject(
'mybucket',
'myobject',
Stream<Uint8List>.value(Uint8List(1024)),
onProgress: (bytes) => print('$bytes uploaded'),
);
}
Get object
import 'dart:io';
import 'package:minio_new/minio.dart';
void main() async {
final minio = Minio(
endPoint: 's3.amazonaws.com',
accessKey: 'YOUR-ACCESSKEYID',
secretKey: 'YOUR-SECRETACCESSKEY',
);
final stream = await minio.getObject('BUCKET-NAME', 'OBJECT-NAME');
// Get object length
print(stream.contentLength);
// Write object data stream to file
await stream.pipe(File('output.txt').openWrite());
}
Please file feature requests and bugs at the [issue tracker][tracker].
Contributions to this repository are welcome.
MIT