s3_storage 1.0.4 copy "s3_storage: ^1.0.4" to clipboard
s3_storage: ^1.0.4 copied to clipboard

discontinuedreplaced by: minio

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',
);

AWS S3

final s3_storage = S3Storage(
  endPoint: 's3.amazonaws.com',
  accessKey: 'YOUR-ACCESSKEYID',
  secretKey: 'YOUR-SECRETACCESSKEY',
);

Filebase

final s3_storage = S3Storage(
  endPoint: 's3.filebase.com',
  accessKey: 'YOUR-ACCESSKEYID',
  secretKey: 'YOUR-SECRETACCESSKEY',
  useSSL: true,
);

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');
}

For complete example, see: example

To use fPutObject() and fGetObject, you have to import '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'),
  );
}

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());
}

Features and bugs #

Please file feature requests and bugs at the issue tracker.

Contributions to this repository are welcome.

License #

MIT

15
likes
130
points
281
downloads

Publisher

unverified uploader

Weekly Downloads

S3 (AWS, MinIO) Dart Client SDK that provides simple APIs to access any Amazon S3 compatible object storage server.

Homepage
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

buffer, convert, crypto, http, intl, meta, mime, path, xml

More

Packages that depend on s3_storage