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.
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, or readable stream.
config supports the following options from the Flickr Upload API:
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