edge/doc/apps/server-api/blob.md

89 lines
2.2 KiB
Markdown

# 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.upload(blob, metadata)`](../client-api/README.md#edge-upload-blob-blob-metadata-object-promise) du SDK client.