From d6806676db688fee475fbdf6cce00c838a1a5db2 Mon Sep 17 00:00:00 2001 From: Andrew Davidson Date: Sat, 19 Nov 2011 20:14:59 -0800 Subject: [PATCH] adding api for twitter custom image uploaders --- main.rb | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/main.rb b/main.rb index 3dc0d21..4d00285 100755 --- a/main.rb +++ b/main.rb @@ -2,6 +2,7 @@ require 'rubygems' require 'sinatra' require 'sequel' require 'uri' +require 'yaml' @@ -111,9 +112,42 @@ get '/upload' do end +post '/api-upload' do + require 'aws/s3' + + keys = YAML.load(File.open("keys.yaml", "r").read) + + # establish connection + AWS::S3::Base.establish_connection!( + :access_key_id => keys['s3_key'], + :secret_access_key => keys['s3_secret'] + ) + + # generate key and check uniqueness + key = Anybase::Base62.random(Shorten.path_size) + key_check = ShortenUrl.filter(:url => key).first + + while key_check + key = Anybase::Base62.random(Shorten.path_size) + key_check = ShortenUrl.filter(:url => key).first + end + + # merge key and extension + filename = key + ".jpg" + + # upload to S3 + AWS::S3::S3Object.store(filename, params[:media], keys["s3_bucket"], :access => :public_read) + object_url = AWS::S3::S3Object.url_for(filename, keys["s3_bucket"], :authenticated => false) + + # generate shorturl + url = ShortenUrl.new(:url => object_url, :key => key, :image => "true") + url.save + + "" + url.short_url + "" +end + post '/upload' do require 'aws/s3' - require 'yaml' keys = YAML.load(File.open("keys.yaml", "r").read)