getData method
- [int maxSize = 10485760]
Downloads the data at this reference.
Parameters:
maxSize: Optional maximum size in bytes (default 10MB).
Returns: A Future that resolves to the data as Uint8List or null.
Example:
Uint8List? data = await ref.getData();
Implementation
Future<Uint8List?> getData([int maxSize = 10485760]) async {
assert(maxSize > 0);
if (maxSize <= 0) {
throw Utils.storageErrorHandler(
400,
StorageErrorMessages.format(StorageErrorMessages.EXPECTED_TYPE, [
'positive maxSize',
maxSize.toString(),
]),
null,
);
}
final metadata = await getMetadata();
final objectSize = metadata.size;
if (objectSize == null) {
throw Utils.storageErrorHandler(
400,
StorageErrorMessages.UNKNOWN_DOWNLOAD_SIZE,
null,
);
}
if (objectSize > maxSize) {
throw Utils.storageErrorHandler(
400,
StorageErrorMessages.format(
StorageErrorMessages.DOWNLOAD_EXCEEDS_MAX_SIZE,
[objectSize, maxSize],
),
null,
);
}
FusabaseAuth auth = FusabaseAuth.instanceFor(app: this.storage.app);
String? accessToken = await getAccessToken(auth);
String url =
"${StorageHelper.get_url(storage._config)}${globals.downloadObjRESTEP}";
// if (StorageHelper.isPrem(storage._config)) {
// final_url = StorageHelper._PARequestURL(storage._config) + url;
// } else {
// final_url = url;
// }
return StorageHelper.getDataHelper(
createClient(storage.app),
url,
fullPath,
bucket,
storage._config,
storage._maxDownloadRetryTime,
__logLevel,
accessToken,
);
}