# Dropzone Action Info |
# Name: QiNiu |
# Description: Upload file to QiNiu and get the link. |
# Handles: Files |
# Creator: nickcheng |
# URL: http://nickcheng.com |
# OptionsNIB: ExtendedLogin |
# Events: Clicked, Dragged |
# KeyModifiers: Command, Option, Control, Shift |
# SkipConfig: No |
# RunsSandboxed: Yes |
# Version: 1.0 |
# MinDropzoneVersion: 3.0 |
# RubyPath: /usr/bin/ruby |
require'qiniu' |
require'pathname' |
require'securerandom' |
Qiniu.establish_connection!:access_key=>ENV['username'], |
:secret_key=>ENV['password'] |
ENV['http_proxy']=' |
defdragged |
puts $items.inspect |
local_file= $items[0] |
new_filename=SecureRandom.uuid + Pathname.new(local_file).extname |
putslocal_file |
put_policy=Qiniu::Auth::PutPolicy.new(ENV['server'],new_filename) |
uptoken=Qiniu::Auth.generate_uptoken(put_policy) |
putsuptoken |
$dz.begin('Starting some task..') |
$dz.determinate(true) |
$dz.percent(10) |
code,result,response_headers=Qiniu::Storage.upload_with_put_policy( |
put_policy,# 上传策略 |
local_file |
) |
$dz.percent(50) |
putscode |
putsresult |
putsresponse_headers |
$dz.percent(100) |
$dz.finish('Task Complete') |
ifcode != 200 |
$dz.fail('Error uploading file') |
else |
url='http://#{ENV['server']}.u.qiniudn.com/#{result['key']}' |
$dz.url(url) |
end |
end |
defclicked |
system('open http://qiniu.com') |
end |