https://github.com/goto-bus-stop/imgur-blob-store
upload and download images from imgur through an abstract-blob-store compatible interface
https://github.com/goto-bus-stop/imgur-blob-store
abstract-blob-store blob-store imgur
Last synced: 3 months ago
JSON representation
upload and download images from imgur through an abstract-blob-store compatible interface
- Host: GitHub
- URL: https://github.com/goto-bus-stop/imgur-blob-store
- Owner: goto-bus-stop
- License: mit
- Created: 2017-06-10T12:26:00.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2017-09-09T15:36:51.000Z (over 7 years ago)
- Last Synced: 2025-01-12T18:12:42.849Z (4 months ago)
- Topics: abstract-blob-store, blob-store, imgur
- Language: JavaScript
- Size: 13.7 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# imgur-blob-store
A [blob store](https://github.com/maxogden/abstract-blob-store) that stores images on Imgur.
[](https://github.com/maxogden/abstract-blob-store)
## Installation
With npm:
```bash
npm install --save imgur-blob-store
```## Usage
```js
var fs = require('fs')
var spawn = require('child_process').spawn
var imgur = require('imgur-blob-store')var store = imgur({
token: 'abcdef123456'
})// writing to imgur
fs.createReadStream('/tmp/my-image.png')
.pipe(store.createWriteStream(function (err, img) {
if (err) throw err
// removing images--requires the deletehash
store.remove({ deletehash: img.deletehash }, function () {})
}))// reading from imgur
var feh = spawn('feh', ['-'])
store.createReadStream('qzq4eCj').pipe(feh.stdin)// exists
store.exists('pU7nQnP', function (err, exists) {
})
```## API
### var imgur = require('imgur-blob-store')(options)
Available `options` are:
* `token` - an imgur API client ID. Get one from https://api.imgur.com/oauth2/addclient
### imgur.createWriteStream(options, cb)
Returns a writable stream.
`options` is optional and ignored, imgur will assign a key for you.`cb` is called with `(err, metadata)` when the upload failed or completed.
`metadata` is the `data` object returned by imgur (https://apidocs.imgur.com/#58306db8-0a6f-4aa1-a021-bdad565f153e).
Some useful properties are:* `key` - The ID of the image, for use with `createReadStream` and other methods
* `deletehash` - The deletehash of the image, for use with `remove()`
* `link` - The publically accessible URL to the image
* `type` - Detected mime type
* `width` / `height` - Image dimensions
* `size` - Size of the image in bytes, this can be different from the original size because imgur compresses images### imgur.createReadStream(options)
Returns a readable stream. `options.key` should be an imgur image ID.
### imgur.exists(options, cb)
Checks if an image exists.
`options.key` should be an imgur image ID.
Calls `cb` with `(err, exists)`.### imgur.remove(options, cb)
Deletes an image from imgur.
`options.deletehash` should be the image's delete hash.
Calls `cb` with `(err)`.## License
[MIT](./LICENSE)