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

14
likes
130
points
172
downloads

Publisher

unverified uploader

Weekly Downloads

2024.09.21 - 2025.04.05

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