Class: Uploadcare::Api::Rest::Files

Inherits:
Object
  • Object
show all
Defined in:
lib/uploadcare/api/rest/files.rb

Overview

REST API endpoint for file operations.

Provides methods for listing, searching, retrieving, storing, deleting, and copying files.

Examples:

rest = Uploadcare::Api::Rest.new(config: config)
rest.files.list(params: { limit: 10 })
rest.files.search(params: { query: "invoice" }, query: { limit: 20 })
rest.files.info(uuid: "file-uuid")

See Also:

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(rest:) ⇒ Files

Returns a new instance of Files.

Parameters:



19
20
21
# File 'lib/uploadcare/api/rest/files.rb', line 19

def initialize(rest:)
  @rest = rest
end

Instance Attribute Details

#restUploadcare::Api::Rest (readonly)

Returns Parent REST client.

Returns:



16
17
18
# File 'lib/uploadcare/api/rest/files.rb', line 16

def rest
  @rest
end

Instance Method Details

#batch_delete(uuids:, request_options: {}) ⇒ Uploadcare::Result

Batch delete files by UUIDs.

Parameters:

  • uuids (Array<String>)

    List of file UUIDs to delete

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

    Request options

Returns:

See Also:



100
101
102
103
# File 'lib/uploadcare/api/rest/files.rb', line 100

def batch_delete(uuids:, request_options: {})
  rest.request(method: :delete, path: '/files/storage/', params: uuids, headers: {},
               request_options: request_options)
end

#batch_store(uuids:, request_options: {}) ⇒ Uploadcare::Result

Batch store files by UUIDs.

Parameters:

  • uuids (Array<String>)

    List of file UUIDs to store

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

    Request options

Returns:

See Also:



90
91
92
# File 'lib/uploadcare/api/rest/files.rb', line 90

def batch_store(uuids:, request_options: {})
  rest.put(path: '/files/storage/', params: uuids, headers: {}, request_options: request_options)
end

#delete(uuid:, request_options: {}) ⇒ Uploadcare::Result

Delete a file by UUID.

Parameters:

  • uuid (String)

    The file UUID

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

    Request options

Returns:

See Also:



78
79
80
81
82
# File 'lib/uploadcare/api/rest/files.rb', line 78

def delete(uuid:, request_options: {})
  encoded_uuid = URI.encode_www_form_component(uuid.to_s)
  rest.request(method: :delete, path: "/files/#{encoded_uuid}/storage/", params: {}, headers: {},
               request_options: request_options)
end

#info(uuid:, params: {}, request_options: {}) ⇒ Uploadcare::Result

Get file information by UUID.

Parameters:

  • uuid (String)

    The file UUID

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

    Optional parameters (e.g., include: "appdata")

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

    Request options

Returns:

See Also:



56
57
58
59
# File 'lib/uploadcare/api/rest/files.rb', line 56

def info(uuid:, params: {}, request_options: {})
  encoded_uuid = URI.encode_www_form_component(uuid.to_s)
  rest.get(path: "/files/#{encoded_uuid}/", params: params, headers: {}, request_options: request_options)
end

#list(params: {}, request_options: {}) ⇒ Uploadcare::Result

List files with optional filtering and pagination.

Parameters:

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

    Query parameters (limit, ordering, etc.)

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

    Request options

Returns:

See Also:



29
30
31
# File 'lib/uploadcare/api/rest/files.rb', line 29

def list(params: {}, request_options: {})
  rest.get(path: '/files/', params: params, headers: {}, request_options: request_options)
end

#local_copy(source:, options: {}, request_options: {}) ⇒ Uploadcare::Result

Copy a file to local storage.

Parameters:

  • source (String)

    CDN URL or UUID of the file to copy

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

    Optional parameters (:store, :metadata)

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

    Request options

Returns:

See Also:



112
113
114
115
# File 'lib/uploadcare/api/rest/files.rb', line 112

def local_copy(source:, options: {}, request_options: {})
  params = { source: source }.merge(options)
  rest.post(path: '/files/local_copy/', params: params, headers: {}, request_options: request_options)
end

#remote_copy(source:, target:, options: {}, request_options: {}) ⇒ Uploadcare::Result

Copy a file to remote storage.

Parameters:

  • source (String)

    CDN URL or UUID of the file to copy

  • target (String)

    Name of the custom storage

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

    Optional parameters (:make_public, :pattern)

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

    Request options

Returns:

See Also:



125
126
127
128
# File 'lib/uploadcare/api/rest/files.rb', line 125

def remote_copy(source:, target:, options: {}, request_options: {})
  params = { source: source, target: target }.merge(options)
  rest.post(path: '/files/remote_copy/', params: params, headers: {}, request_options: request_options)
end

#search(params: {}, query: {}, request_options: {}) ⇒ Uploadcare::Result

Search files by full-text criteria and structured filters.

Search criteria belong in the JSON request body (params). Pagination and response expansion options belong in the query string (query).

Parameters:

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

    Search body (query, phrase, exact, ranges, tags, etc.)

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

    Query parameters (limit, offset, include)

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

    Request options

Returns:

See Also:



43
44
45
46
47
# File 'lib/uploadcare/api/rest/files.rb', line 43

def search(params: {}, query: {}, request_options: {})
  rest.post(
    path: '/files/search/', params: params, query: query, headers: {}, request_options: request_options
  )
end

#store(uuid:, request_options: {}) ⇒ Uploadcare::Result

Store a file by UUID, making it permanently available.

Parameters:

  • uuid (String)

    The file UUID

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

    Request options

Returns:

See Also:



67
68
69
70
# File 'lib/uploadcare/api/rest/files.rb', line 67

def store(uuid:, request_options: {})
  encoded_uuid = URI.encode_www_form_component(uuid.to_s)
  rest.put(path: "/files/#{encoded_uuid}/storage/", params: {}, headers: {}, request_options: request_options)
end