Method: IMGSrc::API#upload
- Defined in:
- lib/imgsrc.rb
#upload(name, files) ⇒ Object
Upload files to album
143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 |
# File 'lib/imgsrc.rb', line 143 def upload(name, files) raise RuntimeError, 'user is not logined (no storage host)' unless @stor_conn album = get_album(name) uri = "/cli/post.php?#{@Login.map{ |k, v| "#{k}=#{v}" }.join('&')}&album_id=#{album.id}" photos = nil files.each do |file| # imgsrc.ru badly handles multi-file uploads (unstable work, unrecoverable errors) puts "uploading #{file}..." photos, retries = nil, 3 begin photos = do_upload(uri, [file], :nobase64) rescue Exception => x puts "#{File.basename(file)}: upload failed (#{x.message}), #{retries - 1} retries left" retry if (retries -= 1) > 0 raise UploadError, x. end end album.photos, album.size = photos, photos.size if photos # imgsrc returns whole album in response pp album end |