class DropboxApi::ChunkedUploader
Public Class Methods
new(client, path, i_stream, options = {})
click to toggle source
# File lib/dropbox_api/chunked_uploader.rb, line 6 def initialize(client, path, i_stream, options = {}) @chunk_size = options.delete(:chunk_size) || 4 * 1024 * 1024 # 4 MiB @client = client @i_stream = i_stream init_commit_info(path, options) end
Public Instance Methods
finish()
click to toggle source
# File lib/dropbox_api/chunked_uploader.rb, line 32 def finish @client.upload_session_finish @cursor, @commit_info end
start()
click to toggle source
# File lib/dropbox_api/chunked_uploader.rb, line 15 def start chunk = @i_stream.read @chunk_size chunk = '' if chunk.nil? @cursor = @client.upload_session_start chunk end
upload()
click to toggle source
# File lib/dropbox_api/chunked_uploader.rb, line 22 def upload loop do chunk = @i_stream.read @chunk_size break if chunk.nil? @client.upload_session_append_v2 @cursor, chunk break if chunk.size < @chunk_size end end
Private Instance Methods
init_commit_info(path, options)
click to toggle source
# File lib/dropbox_api/chunked_uploader.rb, line 38 def init_commit_info(path, options) validate_options([ :mode, :autorename, :client_modified, :mute ], options) options[:path] = path @commit_info = DropboxApi::Metadata::CommitInfo.build_from_options options end