# ssb-serve-blobs

> Serve blobs from a local http server

Latest version **3.3.0** (published 2023-07-12) · MIT license · 0 weekly downloads

## Install

```sh
npm install ssb-serve-blobs
pnpm add ssb-serve-blobs
yarn add ssb-serve-blobs
bun add ssb-serve-blobs
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 3.3.0 |
| Published | 2023-07-12 |
| First published | 2018-02-15 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 4 |
| Unpacked size | 9 KB |
| Known vulnerabilities | 0 (+1 in 1 direct dependencies) |
| Install scripts | no |
| GitHub stars | 9 |
| Author | Andre Staltz |
| Maintainers | christianbundy, dominictarr, cel, ahdinosaur, staltz, mixmix, arj03, cryp7ix |

## Links

- npm: https://www.npmjs.com/package/ssb-serve-blobs
- Repository: https://github.com/ssbc/ssb-serve-blobs
- Issues: https://github.com/ssbc/ssb-serve-blobs/issues
- npm.io page: https://npm.io/package/ssb-serve-blobs

## Dependencies (4)

- [file-type](https://npm.io/package/file-type.md) ^16.5.4
- [pull-stream](https://npm.io/package/pull-stream.md) ^3.3.0
- [multiblob-http](https://npm.io/package/multiblob-http.md) ^1.2.0
- [pull-box-stream](https://npm.io/package/pull-box-stream.md) ^1.0.13

## Recent versions

- 3.3.0 (latest) — 2023-07-12
- 3.2.0 — 2023-06-19
- 3.1.2 — 2023-04-11
- 3.1.1 — 2022-02-28
- 3.1.0 — 2022-01-20
- 3.0.0 — 2021-09-29
- 2.6.0 — 2021-03-04
- 2.5.0 — 2020-08-26
- 2.4.0 — 2020-07-16
- 2.3.0 — 2020-05-21
- 2.2.0 — 2020-05-20
- 2.1.0 — 2019-01-16
- 2.0.0 — 2018-11-09
- 1.0.0 — 2018-02-15

## README

# ssb-serve-blobs

Scuttlebot plugin to serve blobs from a local http server on port 26835.

Note also this remark plugin for modifying markdown to link to the server: [remark-images-to-ssb-serve-blobs](https://gitlab.com/staltz/remark-images-to-ssb-serve-blobs)

## Installation

Requires ssb-blobs plugin.

```diff
 const createSbot = require('scuttlebot/index')
   .use(require('scuttlebot/plugins/plugins'))
   .use(require('scuttlebot/plugins/master'))
   .use(require('scuttlebot/plugins/gossip'))
   .use(require('scuttlebot/plugins/replicate'))
   .use(require('ssb-friends'))
+  .use(require('ssb-blobs'))
   .use(require('ssb-backlinks'))
   .use(require('ssb-private'))
   .use(require('ssb-about'))
   .use(require('ssb-query'))
+  .use(require('ssb-serve-blobs'))
   .use(require('scuttlebot/plugins/invite'))
   .use(require('scuttlebot/plugins/block'))
   .use(require('scuttlebot/plugins/local'))
```

## Usage

```js
const Stack = require('secret-stack')
const caps = require('ssb-caps')

const stack = Stack({ caps })
  .use(require('ssb-db'))
  .use(require('ssb-blobs'))       // << required
  .use(require('ssb-serve-blobs')) // needs: blobs

const config = {
  // See ssb-config for other needed config
  serveBlobs: {
    // Enable CORS
    cors: true,

    // Content Security Policy (default: 'default-src none; sandbox')
    csp: "default-src 'self';",

    // Port to serve blobs from (default: 26835)
    port: 3921,
  },
};
const server = stack(config)
```

## Utils

```js
const toUrl = require('ssb-serve-blobs/id-to-url')

const blobId = '&d8kM9RXf5zvvy+AzlQ//JbCF0AEJelTl6m03u3dVVj4=.sha256'
const unboxKey = 'uU0nuZNNPgilLlLX2n2r+sSE7+N6U4DukIj3rOLvzek='

console.log(toUrl(blobId))
// http://localhost:26835/get/%26d8kM9RXf5zvvy%2BAzlQ%2F%2FJbCF0AEJelTl6m03u3dVVj4%3D.sha256

console.log(toUrl(blobId, {unbox: unboxKey}))
// http://localhost:26835/get/%26d8kM9RXf5zvvy%2BAzlQ%2F%2FJbCF0AEJelTl6m03u3dVVj4%3D.sha256?unbox=uU0nuZNNPgilLlLX2n2r%2BsSE7%2BN6U4DukIj3rOLvzek%3D

console.log(toUrl(blobId, {port: 6000}))
// http://localhost:6000/get/%26d8kM9RXf5zvvy%2BAzlQ%2F%2FJbCF0AEJelTl6m03u3dVVj4%3D.sha256
```

```js
const fromUrl = require('ssb-serve-blobs/url-to-id')

console.log(fromUrl('http://localhost:26835/get/%26Pe5kTo%2FV%2Fw4MToasp1IuyMrMcCkQwDOdyzbyD5fy4ac%3D.sha256'))
// &Pe5kTo/V/w4MToasp1IuyMrMcCkQwDOdyzbyD5fy4ac=.sha256

console.log(fromUrl('http://localhost:12345/get/%26Pe5kTo%2FV%2Fw4MToasp1IuyMrMcCkQwDOdyzbyD5fy4ac%3D.sha256', {port: 12345}))
// &Pe5kTo/V/w4MToasp1IuyMrMcCkQwDOdyzbyD5fy4ac=.sha256
```

## License

MIT

---
_Source: https://npm.io/package/ssb-serve-blobs · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
