12 lines
1.6 KiB
Markdown
12 lines
1.6 KiB
Markdown
---
|
|
title: Socle de stockage serveur — le backend ne sait pas écrire dans le bucket
|
|
area: backend
|
|
horizon: v2
|
|
tags: manager-service, Studio IA
|
|
flag: critical | Prérequis dur
|
|
src: v2/studio-plan.md — lot 0 · v2/media-storage-plan.md
|
|
---
|
|
<p><code>IResourceBlobService</code> n'expose que <code>DeleteAsync</code> : <strong>tout l'upload est fait par le navigateur en direct</strong> (<code>resources_screen.dart:247-256</code>). Or le Studio produit ses images côté serveur, et le TTS pré-généré aussi. Il faut <code>UploadAsync</code>, <code>CopyAsync</code>, <code>ProbeSizeAsync</code> — le credential est <em>déjà</em> chargé pour FCM, seul <code>Firebase:StorageBucket</code> est vide en config (carte dédiée en colonne Bascule prod).</p>
|
|
<p>⚠️ <strong><code>ImageHelper</code> est du code mort</strong> : <code>ResourceController.Upload</code> (base64 + resize + watermark) s'appuie sur <code>System.Drawing.Common</code>, qui ne tourne pas sur l'image <code>aspnet:8.0</code> Linux. À réécrire en <strong>ImageSharp</strong> — c'est aussi ce qui portera la compression serveur 2560 px / q82 et l'option de gravure du watermark.</p>
|
|
<p><strong>Un lot, deux modules servis.</strong> Le TTS pré-généré attend exactement la même chose (<code>tts-pregenerated-plan.md</code> : « upload serveur via Firebase Admin SDK »). Le faire une fois, proprement, débloque les deux. À caser avec l'ajout de <strong><code>LB</code> (luxembourgeois)</strong> aux langues supportées — absent des 4 repos, zéro occurrence, et bloquant pour le projet luxembourgeois en cours indépendamment du Studio.</p>
|