[Nom de la Ressource de Stockage Cloudflare]
Type de ressource : Bucket Cloudflare R2 / BibliothĂšque Cloudflare Stream
Fichier source :services/[worker-name]/wrangler.tomlou configuration associée
Statut : [Actif / Déprécié / En développement]
Slice : [Numéro de la tranche verticale]
Version : 1.0
1. Vue dâensemble (DOC)
Section titled â1. Vue dâensemble (DOC)â1.1. Description
Section titled â1.1. Descriptionâ[Description concise du rĂŽle de cette ressource de stockage dans lâarchitecture du site]
1.2. Objectif
Section titled â1.2. Objectifâ- [Objectif principal : ex. stocker les images du blog et du portfolio]
- [BĂ©nĂ©fice pour lâarchitecture : ex. dĂ©couplage des mĂ©dias du CMS Sanity]
1.3. PérimÚtre concerné
Section titled â1.3. PĂ©rimĂštre concernĂ©â| Type de mĂ©dias | Statut |
|---|---|
| Images | [â /â] |
| VidĂ©os | [â /â] |
| Documents | [â /â] |
| Backups | [â /â] |
| AccĂšs | Statut |
|---|---|
| Public | [â /â] |
| PrivĂ© | [â /â] |
| URLs signĂ©es | [â /â] |
| Consommateur | Statut |
|---|---|
| Sanity | [â /â] |
| Astro | [â /â] |
| Workers L3 | [â /â] |
2. Architecture et flux (DOC)
Section titled â2. Architecture et flux (DOC)â2.1. Diagramme de flux
Section titled â2.1. Diagramme de fluxâ[Sanity Studio] â (upload via Worker L3) âŒ[Worker media-upload (L3)] â âą GĂ©nĂ©ration URL prĂ©signĂ©e R2 âŒ[Cloudflare R2] â âą Stockage structurĂ© âŒ[Sanity] â âą Stocke uniquement URL + mĂ©tadonnĂ©es âŒ[Astro / Site] â âą Consomme les URLs R2 âŒ[Utilisateur final]2.2. Composants impliquĂ©s
Section titled â2.2. Composants impliquĂ©sâ| Composant | RĂŽle | Couche |
|---|---|---|
| Bucket R2 | Stockage des médias | Infrastructure |
Worker media-upload |
GĂ©nĂ©ration dâURLs prĂ©signĂ©es | L3 |
Worker media-cleanup |
Nettoyage des orphelins | L3 |
Worker sanity-backup |
Backups vers R2 | L3 |
| Sanity | Stockage des métadonnées + URLs | L1 |
| Astro | Consommation des URLs | L2 |
3. Configuration du bucket (CODE)
Section titled â3. Configuration du bucket (CODE)â3.1. Variables dâenvironnement
Section titled â3.1. Variables dâenvironnementâ| Variable | Description | Obligatoire | Valeur par dĂ©faut |
|---|---|---|---|
R2_ACCOUNT_ID |
ID du compte Cloudflare | â | - |
R2_BUCKET_NAME |
Nom du bucket | â | - |
R2_ACCESS_KEY_ID |
ClĂ© dâaccĂšs API R2 | â | - |
R2_SECRET_ACCESS_KEY |
ClĂ© secrĂšte API R2 | â | - |
R2_PUBLIC_DOMAIN |
Domaine public | â | - |
3.2. Configuration Wrangler (wrangler.toml)
Section titled â3.2. Configuration Wrangler (wrangler.toml)âname = "media-upload"main = "src/index.ts"compatibility_date = "2026-09-01"
[[r2_buckets]]binding = "R2_BUCKET"bucket_name = "pub-medias"preview_bucket_name = "pub-medias-staging"
[vars]R2_ACCOUNT_ID = "your-account-id"R2_BUCKET_NAME = "pub-medias"R2_PUBLIC_DOMAIN = "pub-medias.votredomaine.com"3.3. Injection des secrets
Section titled â3.3. Injection des secretsâwrangler secret put R2_ACCESS_KEY_ID --env productionwrangler secret put R2_SECRET_ACCESS_KEY --env production4. Contrats dâEntrĂ©e/Sortie (SPEC)
Section titled â4. Contrats dâEntrĂ©e/Sortie (SPEC)â4.1. Inputs (Upload)
Section titled â4.1. Inputs (Upload)â| ParamĂštre | Type | Validation |
|---|---|---|
file |
File |
Type MIME valide |
filename |
string |
Extension valide |
4.2. Outputs (URL)
Section titled â4.2. Outputs (URL)â| ĂlĂ©ment | Type | Description |
|---|---|---|
url |
string |
URL publique du fichier |
5. Tests attendus (TEST)
Section titled â5. Tests attendus (TEST)â5.1. Tests unitaires
Section titled â5.1. Tests unitairesâ| ScĂ©nario | Description | RĂ©sultat attendu |
|---|---|---|
| Upload | Fichier valide | URL générée |
| Download | URL valide | Fichier retourné |
5.2. Tests dâintĂ©gration
Section titled â5.2. Tests dâintĂ©grationâ| ScĂ©nario | DĂ©pendances | Description | RĂ©sultat attendu |
|---|---|---|---|
| Flux upload | Worker + R2 | Upload â Stockage | Fichier stockĂ© |
6. IntĂ©gration (INTĂG)
Section titled â6. IntĂ©gration (INTĂG)â6.1. IntĂ©gration avec les composants
Section titled â6.1. IntĂ©gration avec les composantsâ| Composant | Type | RĂŽle | MĂ©thode dâintĂ©gration |
|---|---|---|---|
| Sanity | L1 | Stockage métadonnées | URL stockée dans schéma |
| Astro | L2 | Consommation | URL utilisée dans <img> |
| Workers | L3 | Gestion | R2 binding |
6.2. Points dâattention
Section titled â6.2. Points dâattentionâ- Les credentials ne doivent jamais ĂȘtre exposĂ©s
- Les URLs doivent ĂȘtre accessibles publiquement
- Le bucket doit ĂȘtre configurĂ© avec le bon domaine
6.3. Vérification de cohérence
Section titled â6.3. VĂ©rification de cohĂ©renceâ- Le bucket est créé
- Les credentials sont valides
- Les uploads fonctionnent
- Les téléchargements fonctionnent
7. Sécurité
Section titled â7. SĂ©curitĂ©â7.1. MĂ©canismes de sĂ©curitĂ©
Section titled â7.1. MĂ©canismes de sĂ©curitĂ©â- â Credentials injectĂ©s via secrets
- â HTTPS forcĂ©
- â CORS configurĂ©
7.2. RÚgles de sécurité
Section titled â7.2. RĂšgles de sĂ©curitĂ©â- â Ne jamais exposer les credentials
- â Valider les types MIME
- â Configurer les permissions correctement
8. Performance et limites
Section titled â8. Performance et limitesâ8.1. Limites R2
Section titled â8.1. Limites R2â| Limite | Valeur |
|---|---|
| Taille max fichier | 5 TB |
| RequĂȘtes par seconde | IllimitĂ© (facturĂ©) |
8.2. Optimisations
Section titled â8.2. Optimisationsâ- â CDN Cloudflare
- â Compression automatique
- â Cache Edge
9. Débogage et troubleshooting
Section titled â9. DĂ©bogage et troubleshootingâ9.1. ProblĂšmes courants
Section titled â9.1. ProblĂšmes courantsâ| SymptĂŽme | Cause probable | Solution |
|---|---|---|
| Upload échoue | Credentials invalides | Vérifier les secrets |
| 403 Forbidden | Permissions incorrectes | Configurer les permissions |
9.2. Commandes de debug
Section titled â9.2. Commandes de debugâ# Lister les bucketswrangler r2 bucket list
# Télécharger un fichierwrangler r2 object get bucket-name key10. Bonnes pratiques
Section titled â10. Bonnes pratiquesâ10.1. Architecture
Section titled â10.1. Architectureâ- â Organisation hiĂ©rarchique des fichiers
- â Noms de fichiers cohĂ©rents
- â Lifecycle rules
10.2. Maintenance
Section titled â10.2. Maintenanceâ- â Surveiller lâutilisation
- â Nettoyer les fichiers orphelins
- â Configurer les lifecycle rules
11. Ăvolutions et roadmap
Section titled â11. Ăvolutions et roadmapâ11.1. AmĂ©liorations planifiĂ©es
Section titled â11.1. AmĂ©liorations planifiĂ©esâ- [Ăvolution 1]
- [Ăvolution 2]
11.2. Limitations connues
Section titled â11.2. Limitations connuesâ- â [Limitation 1]
- â [Limitation 2]
12. Ressources liées
Section titled â12. Ressources liĂ©esâ- Documentation Cloudflare : R2
13. Historique des modifications
Section titled â13. Historique des modificationsâ| Date | Version | Description | Auteur |
|---|---|---|---|
| YYYY-MM-DD | 1.0 | Création initiale | [Nom] |