putRequestFile method
store the request file into storage, with a new uuid file name. a temp file on the local disk is moved, not read into memory.
RequestFile file = req.input('avatar');
String path = await Storage().putRequestFile('images/avatar', file);
Implementation
Future<String> putRequestFile(String folder, RequestFile requestFile) async {
String? extension = requestFile.extension.isEmpty
? await _sniff(requestFile.stream())
: requestFile.extension;
String key = _newKey(folder, extension);
Disk target = use();
DriverContract driver = target.driver;
if (driver is LocalDriver) {
await requestFile.moveTo(driver.pathFor(target.normalizer.key(key)));
} else {
await target.putStream(key, requestFile.stream());
}
return '/$key';
}