class BlockActor
The maximum size for a block blob is 200 GB, and a block blob can include no more than 50,000 blocks. msdn.microsoft.com/en-us/library/azure/ee691964.aspx
Public Class Methods
new(service, container, blob, options = {})
click to toggle source
# File lib/azure-contrib/blob_service.rb, line 20 def initialize(service, container, blob, options = {}) @service, @container, @blob, @options = service, container, blob, options end
Public Instance Methods
log(message)
click to toggle source
# File lib/azure-contrib/blob_service.rb, line 43 def log(message) puts message end
upload(block_id, chunk, retries = 0)
click to toggle source
# File lib/azure-contrib/blob_service.rb, line 24 def upload(block_id, chunk, retries = 0) Timeout::timeout(@options[:timeout] || 30){ log "Uploading block #{block_id}" options = @options.dup options[:content_md5] = Base64.strict_encode64(Digest::MD5.digest(chunk)) content_md5 = @service.create_blob_block(@container, @blob, block_id, chunk, options) log "Done uploading block #{block_id} #{content_md5}" [block_id, :uncommitted] } rescue Timeout::Error, Azure::Core::Error => e log "Failed to upload #{block_id}: #{e.class} #{e.message}" if retries < 5 log "Retrying upload (#{retries})" upload(block_id, chunk, retries += 1) else log "Complete failure to upload #{retries} retries" end end