Method: Aws::S3::Object#download_file

Defined in:
lib/aws-sdk-resources/services/s3/object.rb

#download_file(destination, options = {}) ⇒ Boolean

Downloads a file in S3 to a path on disk.

# small files (< 5MB) are downloaded in a single API call
obj.download_file('/path/to/file')

Files larger than 5MB are downloaded using multipart method

# large files are split into parts
# and the parts are downloaded in parallel
obj.download_file('/path/to/very_large_file')

Parameters:

  • destination (String)

    Where to download the file to

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • mode (String)

    ‘auto`, `single_request`, `get_range` `single_request` mode forces only 1 GET request is made in download, `get_range` mode allows `chunk_size` parameter to configured in customizing each range size in multipart_download, By default, `auto` mode is enabled, which performs multipart_download

  • chunk_size (String)

    required in get_range mode

  • thread_count (String)

    Customize threads used in multipart download, if not provided, 10 is default value

Returns:

  • (Boolean)

    Returns ‘true` when the file is downloaded without any errors.



282
283
284
285
286
287
# File 'lib/aws-sdk-resources/services/s3/object.rb', line 282

def download_file(destination, options = {})
  downloader = FileDownloader.new(client: client)
  downloader.download(
    destination, options.merge(bucket: bucket_name, key: key))
  true
end