# Module `blob` Ce module permet de manipuler des fichiers ("blobs") au sein de votre application. ## Fonctions de rappel Pour permettre aux utilisateurs de téléverser/télécharger des fichiers ("blobs") dans votre application, il vous faudra déclarer 2 fonctions dans votre fichier `server/main.js`. ### `onBlobUpload(ctx: Context, blobId: string, blobInfo: BlobInfo, metadata: Metadata)` > `TODO` #### Usage ```js function onBlobUpload(ctx, blobId, blobInfo, metadata) { // Autoriser le téléversement et indiquer que le fichier doit être stocké dans le bucket "my-bucket" return { allow: true, bucket: "my-bucket" }; } ``` ### `onBlobDownload(ctx: Context, bucketName: string, blobId: string)` > `TODO` #### Usage ```js function onBlobDownload(ctx, bucketName, blobId) { // Autoriser le téléchargement return { allow: true }; } ``` ## Méthodes ### `blob.listBuckets(ctx: Context): string[]` > `TODO` ### `blob.getBlobInfo(ctx: Context, bucketName: string, blobId: string): BlobInfo` > `TODO` ### `blob.writeBlob(ctx: Context, bucketName: string, blobId: string, data: any)` > `TODO` ### `blob.readBlob(ctx: Context, bucketName: string, blobId: string): ArrayBuffer` > `TODO` ### `blob.listBlobs(ctx: Context, bucketName: string): BlobInfo[]` > `TODO` ### `blob.deleteBlob(ctx: Context, bucketName: string, blobId: string)` > `TODO` ### `blob.deleteBucket(ctx: Context, bucketName: string)` > `TODO` ### `blob.getBucketSize(ctx: Context, bucketName: string): number` > `TODO` ## Objets ### `Context` Voir la documentation de l'objet [`Context`](./context.md#Context). ### `BlobInfo` ```typescript interface BlobInfo { id: string // Identifiant du blob bucket: string // Nom du bucket contenant le blob size: number // Taille du blob modTime: number // Timestamp Unix de dernière modification du blob contentType: string // Type MIME du contenu du blob } ``` ### `Metadata` L'objet `Metadata` est un objet clé/valeur arbitraire transmis avec la requête de téléversement. Voir la méthode [`Edge.Client.upload(blob, metadata)`](../client-api/README.md#edge-upload-blob-blob-metadata-object-promise) du SDK client.