roflit_s3 0.0.3 copy "roflit_s3: ^0.0.3" to clipboard
roflit_s3: ^0.0.3 copied to clipboard

Flutter package for easy work with REST AWS S3. The package allows to configure S3 requests and execute them in any HTTP client.

Roflit S3 #

Flutter package for easy work with REST AWS S3.

Installing #

dependencies:
  roflit_s3: <latest_version>
copied to clipboard

Import #

import 'package:roflit_s3/roflit_s3.dart';
copied to clipboard

Getting Started #

To use Roflit S3, you need to complete three steps:

  1. Create a RoflitS3 instance by passing the parameters of the cloud storage account to it.
  2. Form the request data for the operation on buckets or objects.
  3. Pass the request data to your request client.

Step 1

// How to get storageAccount parameters can be found in the documentation
// of the cloud service you are using and the service management console.
final storage = RoflitS3(
          accessKeyId: cloudStorageServiceAccount.keyIdentifier,
          secretAccessKey: cloudStorageServiceAccount.secretKey,
          host: cloudStorage.host,
          region: cloudStorage.region,
       );
// If this is your first time using the cloud service, you will
// most likely also need:
// 1. Create an account on your cloud storage;
// 2. Assign roles to it (access rights);
// 3. Create a secret static key for it and save its
//    details (accessKeyId and secretAccessKey).
copied to clipboard

Step 2

   // Generate query data to select data from the cloud.
   final requestBucketsData = storage.buckets.get();
   // Removing a bucket from cloud.
   final requestBucketObjectsData = storage.buckets.getObjects(
      bucketName: 'bucketName',
    );
copied to clipboard

Step 3

   Response<dynamic>? response;
   switch(requestData.typeRequest){
        case RequestType.get:
                final response = await _dio.get<dynamic>(
                requestData.url.toString(),
                options: Options(headers: requestData.headers),
                ).timeout(const Duration(seconds: 10));
        case RequestType.delete:
                final response = await _dio.delete<dynamic>(
                requestData.url.toString(),
                options: Options(headers: requestData.headers),
                );
        ...
   }
copied to clipboard

To read bucket and object data, you will need to parse XML or convert XML to Json. More details in the example.

Read/Download object: #

There are two ways to read/download an object from a private storage:

  1. Signed request.
 // Generate signed request data.
 final object = storage.objects.get(
      bucketName: 'bucketName',
      objectKey: 'objectKey',
    );
 // Use url and headers in your widgets.
 Image.network(
    object.url.toString(),
    headers: object.headers,
 )
copied to clipboard
  1. Signed link.
 // Generate signed link data.
 final object = storage.objects.get(
      bucketName: 'bucketName',
      objectKey: 'objectKey',
      useSignedUrl: true,
    );
 // Use only url.
 Image.network(
    object.url.toString(),
 )
copied to clipboard

Contributions #

If you encounter any problem or the library is missing a feature feel free to open an issue. Feel free to fork, improve the package and make pull request.

1
likes
160
points
33
downloads

Publisher

verified publishermithril-dev.quest

Weekly Downloads

2024.09.22 - 2025.04.06

Flutter package for easy work with REST AWS S3. The package allows to configure S3 requests and execute them in any HTTP client.

Homepage
Repository (GitHub)
View/report issues

Topics

#network #rest #aws-s3 #yandex #cloud

Documentation

API reference

License

MIT (license)

Dependencies

crypto, flutter

More

Packages that depend on roflit_s3