I've got some image files stored in my S3 bucket.

I'd like these to display only in my flutter client but not be publicly accessible IE: In a web browser.

I'm using Flutter's Minio MinIO Dart Client SDK to upload the images to the bucket.

https://pub.dev/packages/minio

The images appear in the bucket as read/write only for the object owner.

What the best way to access these images in Flutter?

I was looking into using pre-signed urls but I wonder if this will create a big lag time?

If so, I'll probably scrap the idea and just make the images publicly available to everyone because I'm using a lot of images in my app.


Solution 1: sinhaashish

You can create IAM policy on a bucket and give the users access to those buckets. Refer . You can o with presigned urls as well but that will last for 7 days max


Solution 2: Ashish Sinha

The implementation logic can be found here . The policy ,users and attaching th epolicy to user are done by MinIO Admin and its a one time activity. Dont hard code access key /secret key for creating the client. You can keep those in any property file or any other location. The client can read the access/secret key and create the user. Since the user has the policy attached to it , it will work in accordance to its policy. The MinIO team is available on their public slack channel or by email to answer questions 24/7/365.