Class: S3Stream::Upload
- Inherits:
-
Object
- Object
- S3Stream::Upload
- Defined in:
- lib/s3stream/upload.rb
Instance Attribute Summary collapse
-
#size ⇒ Object
readonly
Returns the value of attribute size.
Class Method Summary collapse
-
.to(args = {}) ⇒ Object
S3Stream::Upload.to(:s3object => s3object, :log_to => $stdout) do |out| out.write(“abc”) out.write(“123”) end.
Instance Method Summary collapse
- #cancel ⇒ Object
- #close ⇒ Object
-
#initialize(args = {}) ⇒ Upload
constructor
A new instance of Upload.
- #write(data) ⇒ Object
Constructor Details
#initialize(args = {}) ⇒ Upload
Returns a new instance of Upload.
22 23 24 25 26 27 |
# File 'lib/s3stream/upload.rb', line 22 def initialize(args={}) @s3object = args[:s3object] || raise("Missing :s3object") @log = args[:log_to] # optional reset @upload = @s3object.multipart_upload end |
Instance Attribute Details
#size ⇒ Object (readonly)
Returns the value of attribute size.
20 21 22 |
# File 'lib/s3stream/upload.rb', line 20 def size @size end |
Class Method Details
.to(args = {}) ⇒ Object
S3Stream::Upload.to(:s3object => s3object, :log_to => $stdout) do |out|
out.write("abc")
out.write("123")
end
8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/s3stream/upload.rb', line 8 def self.to(args={}) stream = new(args) begin yield stream stream.close rescue => e stream.cancel raise end stream.size end |
Instance Method Details
#cancel ⇒ Object
42 43 44 45 46 |
# File 'lib/s3stream/upload.rb', line 42 def cancel @upload.abort unless @upload.nil? reset log "Canceled upload to #{location}." end |
#close ⇒ Object
35 36 37 38 39 40 |
# File 'lib/s3stream/upload.rb', line 35 def close flush if @buffer.size > 0 unless @upload.close.nil? log "Done uploading #{size} bytes to #{location}." end end |
#write(data) ⇒ Object
29 30 31 32 33 |
# File 'lib/s3stream/upload.rb', line 29 def write(data) @buffer << data flush if @chunk < S3Stream::MAX_CHUNKS && @buffer.size >= @buffer_size @size += data.size end |