Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bertrandom/flickr-upload

A simple Flickr uploader using OAuth that supports files, streams, and buffers.
https://github.com/bertrandom/flickr-upload

Last synced: 23 days ago
JSON representation

A simple Flickr uploader using OAuth that supports files, streams, and buffers.

Awesome Lists containing this project

README

        

# flickr-upload

A simple Flickr uploader using OAuth that supports files, streams, and buffers.

## install

```
npm install flickr-upload
```

## oauth credentials

OAuth tokens with "write" access are required to use `flickr-upload`, but `flickr-upload` does not handle getting them. If you use Google Chrome, you can easily generate them with [flickr-oauth-dance](https://www.npmjs.com/package/flickr-oauth-dance).

## usage

This shows the basic usage of `flickr-upload`:

```
var flickr = require('flickr-upload')({
consumer_key: "3eda09cb562caa5859dcbf6062ca9b7d",
consumer_secret: "b8f5c7f9d37a7e65",
token: "72157649904431428-4cb322030200ac38",
token_secret: "bbd90fb171b1c946"
});

flickr.upload('./test.jpg', function(err, photoId) {

if (err) {
console.error(err);
return;
}

console.log(photoId);

});
```

### config

When requiring the library, pass in your OAuth configuration. The keys are:

```
{
consumer_key: "3eda09cb562caa5859dcbf6062ca9b7d",
consumer_secret: "b8f5c7f9d37a7e65",
token: "72157649904431428-4cb322030200ac38",
token_secret: "bbd90fb171b1c946"
}
```

It also supports an alternative config in the format generated by `flickr-oauth-dance`:

```
{
"api_key": "3eda09cb562caa5859dcbf6062ca9b7d",
"api_secret": "b8f5c7f9d37a7e65",
"access_token": "72157649904431428-4cb322030200ac38",
"access_token_secret": "bbd90fb171b1c946"
}
```

### upload

#### flickr.upload(photo [,config] [,callback])

photo can be a filepath, buffer, [request stream](https://github.com/request/request), or [readable stream](http://nodejs.org/api/fs.html#fs_fs_createreadstream_path_options).

config supports the following options from the [Flickr Upload API](https://www.flickr.com/services/api/upload.api.html):

```
title
description
tags
is_public, is_friend, is_family
safety_level
content_type
hidden
```

If you're uploading a buffer, you can define a `filename` and `contentType`, otherwise it will try to automatically generate these from the buffer contents and use a generic filename like `photo.jpg`.

The callback function has the arguments (err, photoId).

## examples

### basic filepath

```
flickr.upload('./test.jpg');
```

### buffer

```
var fs = require('fs');
flickr.upload(fs.readFileSync('./test.jpg'));
```

### request stream

```
var request = require('request');
flickr.upload(request('https://farm9.staticflickr.com/8623/16015386389_872d309a89_z.jpg'));
```

Don't use the filename from the stream:

```
var request = require('request');
flickr.upload(request('https://farm9.staticflickr.com/8623/16015386389_872d309a89_z.jpg'), {strip_filename: true});
```

### readable stream

```
var fs = require('fs');
flickr.upload(fs.createReadStream('./test.jpg'));
```

## setting a title

```
flickr.upload('./test.jpg', {title: 'Test'});
```

## uploading as private

```
flickr.upload('./test.jpg', {is_public: 0});
```

## license

MIT