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, retrieving, storing, deleting, and copying files.

Examples:

rest = Uploadcare::Api::Rest.new(config: config)
rest.files.list(params: { limit: 10 })
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:



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

def initialize(rest:)
  @rest = rest
end

Instance Attribute Details

#restUploadcare::Api::Rest (readonly)

Returns Parent REST client.

Returns:



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

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:



83
84
85
86
# File 'lib/uploadcare/api/rest/files.rb', line 83

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:



73
74
75
# File 'lib/uploadcare/api/rest/files.rb', line 73

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:



61
62
63
64
65
# File 'lib/uploadcare/api/rest/files.rb', line 61

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:



39
40
41
42
# File 'lib/uploadcare/api/rest/files.rb', line 39

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:



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

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:



95
96
97
98
# File 'lib/uploadcare/api/rest/files.rb', line 95

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:



108
109
110
111
# File 'lib/uploadcare/api/rest/files.rb', line 108

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

#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:



50
51
52
53
# File 'lib/uploadcare/api/rest/files.rb', line 50

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