Skip to content

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 :

📋 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.jpg
javascript
const secret = await client.createSecret("Secret avec fichiers", {
  hours: 24,
  views: 1,
  attachments: [
    { file: fileBuffer, name: "document.pdf" },
    { file: imageBuffer, name: "image.jpg" }
  ]
});
javascript
const secret = await Sharokey.create("Secret avec fichiers", 24, 1, {
  attachments: [
    { file: fileData, name: "document.pdf" },
    { file: imageData, name: "image.jpg" }
  ]
});
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"}
  ]
)

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"
  }
}

📥 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-only
javascript
const details = await client.getSecretDetails("abc123def");
javascript
const details = await Sharokey.getDetails("abc123def");
python
details = await client.get_details("abc123def")

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"
  }
}

🚨 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"]
    }
  }
}

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"
  }
}

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."
  }
}

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"
  }
}

🔐 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 ​

Released under the MIT License.