s3_storage 1.0.4
s3_storage: ^1.0.4 copied to clipboard
S3 (AWS, MinIO) Dart Client SDK that provides simple APIs to access any Amazon S3 compatible object storage server.
S3Storage Dart
This is the unofficial S3 (AWS, MinIO) Dart Client SDK that provides simple APIs to access any Amazon S3 compatible object storage server.
API #
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 |
Usage #
Initialize MinIO Client #
MinIO
final s3_storage = S3Storage(
endPoint: 'play.min.io',
accessKey: 'Q3AM3UQ867SPQQA43P2F',
secretKey: 'zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG',
);
copied to clipboard
AWS S3
final s3_storage = S3Storage(
endPoint: 's3.amazonaws.com',
accessKey: 'YOUR-ACCESSKEYID',
secretKey: 'YOUR-SECRETACCESSKEY',
);
copied to clipboard
Filebase
final s3_storage = S3Storage(
endPoint: 's3.filebase.com',
accessKey: 'YOUR-ACCESSKEYID',
secretKey: 'YOUR-SECRETACCESSKEY',
useSSL: true,
);
copied to clipboard
File upload
import 'package:s3_storage/io.dart';
import 'package:s3_storage/s3_storage.dart';
void main() async {
final s3_storage = S3Storage(
endPoint: 'play.min.io',
accessKey: 'Q3AM3UQ867SPQQA43P2F',
secretKey: 'zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG',
);
await s3_storage.fPutObject('mybucket', 'myobject', 'path/to/file');
}
copied to clipboard
For complete example, see: example
To use
fPutObject()
andfGetObject
, you have toimport 'package:s3_storage/io.dart';
Upload with progress
import 'package:s3_storage/s3_storage.dart';
void main() async {
final s3_storage = S3Storage(
endPoint: 'play.min.io',
accessKey: 'Q3AM3UQ867SPQQA43P2F',
secretKey: 'zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG',
);
await s3_storage.putObject(
'mybucket',
'myobject',
Stream<Uint8List>.value(Uint8List(1024)),
onProgress: (bytes) => print('$bytes uploaded'),
);
}
copied to clipboard
Get object
import 'dart:io';
import 'package:s3_storage/s3_storage.dart';
void main() async {
final s3_storage = S3Storage(
endPoint: 's3.amazonaws.com',
accessKey: 'YOUR-ACCESSKEYID',
secretKey: 'YOUR-SECRETACCESSKEY',
);
final stream = await s3_storage.getObject('BUCKET-NAME', 'OBJECT-NAME');
// Get object length
print(stream.contentLength);
// Write object data stream to file
await stream.pipe(File('output.txt').openWrite());
}
copied to clipboard
Features and bugs #
Please file feature requests and bugs at the issue tracker.
Contributions to this repository are welcome.
License #
MIT