A Flutter integration for Transloadit's file uploading and encoding service.
Transloadit is a service that helps you handle file uploads, resize, crop and watermark your images, make GIFs, transcode your videos, extract thumbnails, generate audio waveforms, and so much more. In short, Transloadit is the Swiss Army Knife for your files.
This is a Flutter SDK to make it easy to talk to the Transloadit REST API.
flutter pub add transloadit
Firstly you need to create a Transloadit client, using your authentication credentials. This will allow us to make requests to the Transloadit API.
TransloaditClient client = TransloaditClient(
authKey: 'KEY',
authSecret: 'SECRET');
This example shows how to resize an image using the Transloadit API.
TransloaditClient client = TransloaditClient(
authKey: 'KEY',
authSecret: 'SECRET');
// First we create our assembly
TransloaditAssembly assembly = client.newAssembly();
// Next we add two steps, one to import a file, and another to resize it to 400px tall
assembly.addStep("import", "/http/import",
{"url": "https://demos.transloadit.com/inputs/chameleon.jpg"});
assembly.addStep("resize", "/image/resize", {"height": 400});
// We then send this assembly to Transloadit to be processed
TransloaditResponse response = await assembly.createAssembly();
print(response['ok']) // "ASSEMBLY_COMPLETED"
A file from a user's device can be included with an Assembly using the addFile
method.
TransloaditClient client = TransloaditClient(
authKey: 'KEY',
authSecret: 'SECRET');
// First we create our assembly
TransloaditAssembly assembly = client.newAssembly();
// Add a local file to be sent along with the assembly via the Tus protocol
assembly.addFile(file: file!);
assembly.addStep("resize", "/image/resize", {"height": 400});
// We then send this assembly to Transloadit to be processed
TransloaditResponse response = await assembly.createAssembly();
print(response['ok']) // "ASSEMBLY_COMPLETED"
TransloaditClient client = TransloaditClient(
authKey: 'KEY',
authSecret: 'SECRET');
// Create an assembly from a template ID
TransloaditAssembly assembly = client.runTemplate(
templateID: 'TEMPLATE_ID',
params: {'fields': {'input': 'items.jpg'}});
// We then send this assembly to Transloadit to be processed
TransloaditResponse response = await assembly.createAssembly();
print(response.data["ok"]); // "ASSEMBLY_COMPLETED"
These two callback methods track the progress of the Tus upload, not the Transloadit Assembly.
TransloaditResponse response = await assembly.createAssembly(
onProgress: (progressValue) {
print(progressValue); // Float from 0-100
},
onComplete: () {
// Run on completion
}),
);
For a fully working example app, check out examples/.
Full documentation for all classes and methods can be found on pub.dev