ruby-on-railsrubyamazon-s3fog

Fog - Get size of object in S3


How can I get the size of an s3 object in fog without downloading it?

For example:

connection.get_object(dir.key, latest_backup.key).body.size

requires I download the object first.

How can I find out the size before downloading?


Solution

  • To find the size of the file do this:

    connection.head_object(bucket_name, object_name, options = {})
    

    And look for this in the object that comes back:

    Content-Length
    

    This will also give you other good information like the checksum in ETag and other things like that.

    Reference: http://rubydoc.info/gems/fog/Fog/Storage/AWS/Real#head_object-instance_method