import 'dart:convert'; import 'dart:developer'; import 'dart:io'; import 'package:image_picker/image_picker.dart'; import 'package:supabase_flutter/supabase_flutter.dart'; class Storage { final SupabaseClient _supabase = Supabase.instance.client; Future createBucket(String name) async { try { final response = await _supabase.storage.createBucket(name); return response; } catch (e, stackTrace) { log('Error creating bucket: $e', stackTrace: stackTrace); rethrow; } } Future getList() async { try { final response = await _supabase.storage.listBuckets(); return response; } catch (e, stackTrace) { log('Error getting list: $e', stackTrace: stackTrace); rethrow; } } Future uploadFile(XFile image, String name) async { try { final imageString = await image.readAsString(encoding: utf8); final imageFile = File(imageString); await _supabase.storage.from('images').upload(name, imageFile); log('upload Complete'); } catch (e) { log('Error getting list: $e'); rethrow; } } Future uploadImage(String storage, XFile image, String name) async { try { final imageBytes = await image.readAsBytes(); final imagePath = name; await _supabase.storage.from(storage).uploadBinary(imagePath, imageBytes); final imageUrl = _supabase.storage.from(storage).getPublicUrl(imagePath); return imageUrl; } catch (e) { log('Error uploading image: $e'); rethrow; } } }