def list(options = {})
      max = options.fetch(:max, 100_000_000)
      marker = options.fetch(:marker, nil)
      prefix = options.fetch(:prefix, nil)
      details = options.fetch(:details, nil)
      limit = [max, MAX_ITEMS_PER_LIST].min
      log "retrieving up to #{max} items from #{container_path}"
      request_path = list_request_path(marker, prefix, details, limit)
      result = storage_client.get(request_path).body || ""
      if details
        result = JSON.parse(result)
      else
        result = result.split("\n")
      end
      result.tap {|items|
        if max <= limit
          log "Got #{items.length} items; we don't need any more."
        elsif items.length < limit
          log "Got #{items.length} items; there can't be any more."
        else
          log "Got #{items.length} items; requesting #{limit} more."
          details ? marker = items.last["name"] : marker = items.last
          items.concat list(max: max-items.length, marker: marker, prefix: prefix, details: details)
        end
      }
    end
def list(options = {})
      max = options.fetch(:max, 100_000_000)
      marker = options.fetch(:marker, nil)
      prefix = options.fetch(:prefix, nil)
      details = options.fetch(:details, nil)
      limit = [max, MAX_ITEMS_PER_LIST].min
      log "retrieving up to #{max} items from #{container_path}"
      request_path = list_request_path(marker, prefix, details, limit)
      result = storage_client.get(request_path).body || ""
      if details
        result = JSON.parse(result)
      else
        result = result.split("\n")
      end
      result.tap {|items|
        if max <= limit
          log "Got #{items.length} items; we don't need any more."
        elsif items.length < limit
          log "Got #{items.length} items; there can't be any more."
        else
          log "Got #{items.length} items; requesting #{limit} more."
          details ? marker = items.last["name"] : marker = items.last
          items.concat list(max: max-items.length, marker: marker, prefix: prefix, details: details)
        end
      }
    end
Return an array of files in the container.

 Supported options

 max - the maximum number of items to return
 marker - return items alphabetically after this key. Useful for pagination
 prefix - only return items that start with this string
 details - return extra details for each file - size, md5, etc