API Pièces Jointes
Pièces jointes sécurisées avec chiffrement côté client, entièrement gérées par nos SDK officiels.
📎 Aperçu
Nos SDK gèrent toute la complexité du chiffrement, téléchargement et récupération des fichiers. Les fichiers sont chiffrés côté client avant transmission et stockés en sécurité sur le serveur.
SDK Officiels :
- Outil CLI C# - Interface en ligne de commande multiplateforme
- JavaScript SDK - Pour Node.js et les applications web modernes
- JavaScript CDN - Intégration navigateur simple
- Python SDK - Client Python asynchrone
📋 Limites des Pièces Jointes
- Maximum de pièces jointes : 10 fichiers par secret
- Limite de taille totale : 10MB par secret (tous fichiers combinés)
- Extensions supportées : pdf, jpg, jpeg, png, docx, txt
- Durée de stockage : Les fichiers sont stockés pour la même durée que le secret
🔐 Modèle de Sécurité
Chiffrement Côté Client
Tous les SDK gèrent automatiquement le chiffrement des fichiers :
- Algorithme : AES-256-GCM avec dérivation de clé PBKDF2
- Même chiffrement : Utilise le même matériel de clé que le contenu du secret
- Chiffrement individuel : Chaque fichier chiffré séparément
- Zero Knowledge : Le serveur ne voit jamais le contenu des fichiers en clair
📤 Télécharger des Pièces Jointes
Créez des secrets avec des pièces jointes en utilisant les SDK.
Utilisation SDK
bash
sharokey create "Secret avec fichiers" --hours 24 --views 1 --files document.pdf image.jpg1
javascript
const secret = await client.createSecret("Secret avec fichiers", {
hours: 24,
views: 1,
attachments: [
{ file: fileBuffer, name: "document.pdf" },
{ file: imageBuffer, name: "image.jpg" }
]
});1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
javascript
const secret = await Sharokey.create("Secret avec fichiers", 24, 1, {
attachments: [
{ file: fileData, name: "document.pdf" },
{ file: imageData, name: "image.jpg" }
]
});1
2
3
4
5
6
2
3
4
5
6
python
secret = await client.create("Secret avec fichiers",
hours=24,
views=1,
attachments=[
{"file": file_data, "name": "document.pdf"},
{"file": image_data, "name": "image.jpg"}
]
)1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
Format de Réponse
json
{
"success": true,
"message": "Secret créé avec succès",
"data": {
"slug": "abc123def",
"description": "Mon document secret",
"message": "Manipuler avec précaution",
"expires_in_hours": 24,
"maximum_views": 5,
"current_views": 0,
"expiration": "2025-08-11T10:30:00Z",
"has_attachments": true,
"attachments_count": 2,
"share_url": "https://passlink.domaindev/abc123def#keyB_part_here",
"created_at": "2025-08-10T10:30:00Z"
}
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
📥 Récupérer des Secrets avec Pièces Jointes
Obtenez les métadonnées du secret incluant les informations des pièces jointes.
Utilisation SDK
bash
sharokey get abc123def --details-only1
javascript
const details = await client.getSecretDetails("abc123def");1
javascript
const details = await Sharokey.getDetails("abc123def");1
python
details = await client.get_details("abc123def")1
Format de Réponse
json
{
"success": true,
"data": {
"slug": "abc123def",
"description": "Mon document secret",
"creator": "[email protected]",
"maximum_views": 5,
"current_views": 0,
"expiration": "2025-08-11T18:52:37.000000Z",
"has_attachments": true,
"attachments": [
{
"name": "document.pdf"
},
{
"name": "image.jpg"
}
],
"is_expired": false,
"status": "active",
"share_url": "https://passlink.domaindev/abc123def",
"created_at": "2025-08-10T18:52:37.000000Z"
}
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
🚨 Réponses d'Erreur
Tous les SDK gèrent ces erreurs automatiquement et fournissent des objets d'erreur structurés.
Erreurs de Validation
json
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Échec de validation du champ attachments",
"details": {
"attachments.0.name": ["Le nom de la pièce jointe est requis"],
"attachments.0.data": ["Les données de la pièce jointe doivent être une chaîne"]
}
}
}1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
Taille de Fichier Dépassée
json
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "La taille totale des pièces jointes doit être inférieure à 10MB"
}
}1
2
3
4
5
6
7
2
3
4
5
6
7
Trop de Pièces Jointes
json
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Les pièces jointes ne peuvent pas avoir plus de 10 éléments."
}
}1
2
3
4
5
6
7
2
3
4
5
6
7
Type de Fichier Non Supporté
json
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Type de fichier non autorisé. Extensions supportées : pdf, jpg, jpeg, png, docx, txt"
}
}1
2
3
4
5
6
7
2
3
4
5
6
7
🔐 Fonctionnalités de Sécurité SDK
Chiffrement Automatique
- Fichiers chiffrés en utilisant le même matériel de clé que le contenu du secret
- Chiffrement individuel des fichiers avec vérification d'intégrité
- Encodage base64 automatique pour transmission sécurisée
- Validation du type de fichier avant chiffrement
Accès aux Fichiers
- Pièces jointes accessibles via la même URL de secret que le contenu
- Déchiffrement côté client lors de la visualisation/téléchargement
- Nettoyage automatique à l'expiration du secret
- Architecture Zero Knowledge maintenue
💡 Notes d'Implémentation SDK
Gestion des Fichiers
Tous les SDK gèrent automatiquement :
- Lecture et validation des fichiers
- Chiffrement côté client avant téléchargement
- Suivi de progression pour les gros fichiers
- Gestion d'erreurs et logique de nouvelle tentative
Meilleures Pratiques
- Garder la taille totale des pièces jointes sous 10MB
- Utiliser des extensions de fichier appropriées
- Valider les fichiers côté client avant chiffrement
- Gérer la progression de téléchargement pour une meilleure UX
🔗 Documentation Liée
- API Secrets - Création et gestion des secrets principaux
- Documentation CLI C# - Gestion des fichiers en ligne de commande
- JavaScript SDK - APIs de fichiers navigateur et Node.js
- Python SDK - Traitement de fichiers asynchrone
- Authentification - Gestion des tokens API
