Laravel + Transloadit
Envoyer un téléversement Laravel validé vers un Template Transloadit fixe avec le SDK PHP officiel et des informations d’identification côté serveur.
Recette exécutable
Mettre en place l’intégration
Ce contrôleur valide un fichier téléversé, lance un Template fixe via le SDK PHP et renvoie l’ID de l’Assembly ou un message d’erreur expurgé.
- Installez le SDK PHP et créez un Template Transloadit.
- Ajoutez les trois valeurs d’environnement et associez-les dans config/services.php.
- Enregistrez une route POST pour le contrôleur et envoyez un champ de fichier multipart nommé file.
Installer
composer require transloadit/php-sdkconfig/services.php
'transloadit' => [
'key' => env('TRANSLOADIT_KEY'),
'secret' => env('TRANSLOADIT_SECRET'),
'template_id' => env('TRANSLOADIT_TEMPLATE_ID'),
],app/Http/Controllers/MediaController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use transloadit\Transloadit;
class MediaController extends Controller
{
public function store(Request $request): JsonResponse
{
$validated = $request->validate([
'file' => ['required', 'file', 'max:102400'],
]);
$transloadit = new Transloadit([
'key' => config('services.transloadit.key'),
'secret' => config('services.transloadit.secret'),
]);
$assembly = $transloadit->createAssembly([
'files' => [$validated['file']->getRealPath()],
'params' => [
'template_id' => config('services.transloadit.template_id'),
],
]);
$hasSdkError = (bool) $assembly->error();
if ($hasSdkError || !isset($assembly->data['assembly_id'])) {
// Provider responses may contain secrets; log only a fixed failure category.
Log::warning('Transloadit Assembly creation failed', [
'reason' => $hasSdkError ? 'sdk_error' : 'missing_assembly_id',
]);
return response()->json(['error' => 'Could not start media processing'], 502);
}
return response()->json(['assembly_id' => $assembly->data['assembly_id']], 202);
}
}Authentification
- Stockez l’Auth Key, l’Auth Secret et l’ID de Template Transloadit dans la configuration d’environnement de Laravel et lisez-les via config/services.php.
- Le SDK PHP officiel signe automatiquement les requêtes d’Assembly lorsque la clé et le secret sont tous deux fournis.
- Validez les fichiers téléversés et appliquez les règles d’autorisation de votre application avant d’envoyer un fichier côté serveur à Transloadit.
Limitations et notes opérationnelles
- createAssembly démarre l’Assembly, mais ne rend pas synchrone un traitement long. Renvoyez l’identifiant d’Assembly et utilisez des webhooks ou la récupération du statut pour savoir quand le traitement est terminé.
- L’exemple effectue le téléversement via le serveur Laravel. Pour les téléversements volumineux depuis le navigateur, utilisez Uppy pour envoyer les octets directement à Transloadit et laissez Laravel se charger uniquement d’autoriser les signatures.
- La validation des fichiers de Laravel et les limites de votre Template Transloadit sont des contrôles distincts ; configurez les deux selon la même politique produit.
Autres intégrations