uploadcare-ruby 4.4.3 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.env.example +7 -0
- data/.github/workflows/gem-push.yml +1 -1
- data/.github/workflows/ruby.yml +10 -13
- data/.gitignore +9 -0
- data/.rubocop.yml +95 -8
- data/CHANGELOG.md +80 -1
- data/Gemfile +23 -6
- data/MIGRATING_V5.md +290 -0
- data/README.md +422 -671
- data/Rakefile +5 -1
- data/api_examples/README.md +77 -0
- data/api_examples/rest_api/delete_files_storage.rb +3 -5
- data/api_examples/rest_api/delete_files_uuid_metadata_key.rb +3 -4
- data/api_examples/rest_api/delete_files_uuid_storage.rb +3 -4
- data/api_examples/rest_api/delete_groups_uuid.rb +3 -4
- data/api_examples/rest_api/delete_webhooks_unsubscribe.rb +3 -4
- data/api_examples/rest_api/get_addons_aws_rekognition_detect_labels_execute_status.rb +3 -6
- data/api_examples/rest_api/get_addons_aws_rekognition_detect_moderation_labels_execute_status.rb +3 -6
- data/api_examples/rest_api/get_addons_remove_bg_execute_status.rb +3 -6
- data/api_examples/rest_api/get_addons_uc_clamav_virus_scan_execute_status.rb +3 -6
- data/api_examples/rest_api/get_convert_document_status_token.rb +3 -5
- data/api_examples/rest_api/get_convert_document_uuid.rb +3 -5
- data/api_examples/rest_api/get_convert_video_status_token.rb +3 -5
- data/api_examples/rest_api/get_files.rb +3 -5
- data/api_examples/rest_api/get_files_uuid.rb +3 -5
- data/api_examples/rest_api/get_files_uuid_metadata.rb +3 -5
- data/api_examples/rest_api/get_files_uuid_metadata_key.rb +3 -5
- data/api_examples/rest_api/get_groups.rb +3 -5
- data/api_examples/rest_api/get_groups_uuid.rb +3 -5
- data/api_examples/rest_api/get_project.rb +3 -5
- data/api_examples/rest_api/get_webhooks.rb +3 -5
- data/api_examples/rest_api/post_addons_aws_rekognition_detect_labels_execute.rb +3 -5
- data/api_examples/rest_api/post_addons_aws_rekognition_detect_moderation_labels_execute.rb +3 -5
- data/api_examples/rest_api/post_addons_remove_bg_execute.rb +3 -5
- data/api_examples/rest_api/post_addons_uc_clamav_virus_scan_execute.rb +3 -5
- data/api_examples/rest_api/post_convert_document.rb +3 -8
- data/api_examples/rest_api/post_convert_video.rb +3 -10
- data/api_examples/rest_api/post_files_local_copy.rb +3 -6
- data/api_examples/rest_api/post_files_remote_copy.rb +3 -7
- data/api_examples/rest_api/post_webhooks.rb +3 -9
- data/api_examples/rest_api/put_files_storage.rb +3 -8
- data/api_examples/rest_api/put_files_uuid_metadata_key.rb +3 -7
- data/api_examples/rest_api/put_files_uuid_storage.rb +3 -5
- data/api_examples/rest_api/put_webhooks_id.rb +3 -11
- data/api_examples/support/example_helper.rb +250 -0
- data/api_examples/support/run_rest_example.rb +161 -0
- data/api_examples/support/run_upload_example.rb +88 -0
- data/api_examples/upload_api/get_from_url_status.rb +3 -5
- data/api_examples/upload_api/get_group_info.rb +3 -6
- data/api_examples/upload_api/get_info.rb +3 -6
- data/api_examples/upload_api/post_base.rb +3 -5
- data/api_examples/upload_api/post_from_url.rb +3 -5
- data/api_examples/upload_api/post_group.rb +3 -8
- data/api_examples/upload_api/post_multipart_complete.rb +3 -7
- data/api_examples/upload_api/post_multipart_start.rb +3 -7
- data/api_examples/upload_api/put_multipart_part.rb +4 -0
- data/bin/console +1 -1
- data/context7.json +74 -0
- data/docs/release-notes-5.0.0.md +47 -0
- data/examples/README.md +39 -0
- data/examples/batch_upload.rb +54 -0
- data/examples/group_creation.rb +88 -0
- data/examples/large_file_upload.rb +88 -0
- data/examples/simple_upload.rb +39 -0
- data/examples/upload_with_progress.rb +84 -0
- data/examples/url_upload.rb +56 -0
- data/lib/uploadcare/api/rest/addons.rb +107 -0
- data/lib/uploadcare/api/rest/document_conversions.rb +65 -0
- data/lib/uploadcare/api/rest/file_metadata.rb +71 -0
- data/lib/uploadcare/api/rest/files.rb +112 -0
- data/lib/uploadcare/api/rest/groups.rb +49 -0
- data/lib/uploadcare/api/rest/project.rb +23 -0
- data/lib/uploadcare/api/rest/video_conversions.rb +52 -0
- data/lib/uploadcare/api/rest/webhooks.rb +74 -0
- data/lib/uploadcare/api/rest.rb +254 -0
- data/lib/uploadcare/api/upload/files.rb +313 -0
- data/lib/uploadcare/api/upload/groups.rb +72 -0
- data/lib/uploadcare/api/upload.rb +272 -0
- data/lib/uploadcare/client/addons_accessor.rb +85 -0
- data/lib/uploadcare/client/api.rb +33 -0
- data/lib/uploadcare/client/conversions_accessor.rb +33 -0
- data/lib/uploadcare/client/document_conversions_accessor.rb +41 -0
- data/lib/uploadcare/client/file_metadata_accessor.rb +46 -0
- data/lib/uploadcare/client/files_accessor.rb +82 -0
- data/lib/uploadcare/client/groups_accessor.rb +35 -0
- data/lib/uploadcare/client/project_accessor.rb +17 -0
- data/lib/uploadcare/client/video_conversions_accessor.rb +33 -0
- data/lib/uploadcare/client/webhooks_accessor.rb +42 -0
- data/lib/uploadcare/client.rb +127 -0
- data/lib/uploadcare/cname_generator.rb +68 -0
- data/lib/uploadcare/collections/batch_result.rb +35 -0
- data/lib/uploadcare/collections/paginated.rb +165 -0
- data/lib/uploadcare/configuration.rb +81 -0
- data/lib/uploadcare/exception/auth_error.rb +2 -6
- data/lib/uploadcare/exception/configuration_error.rb +4 -0
- data/lib/uploadcare/exception/conversion_error.rb +2 -6
- data/lib/uploadcare/exception/invalid_request_error.rb +4 -0
- data/lib/uploadcare/exception/multipart_upload_error.rb +4 -0
- data/lib/uploadcare/exception/not_found_error.rb +4 -0
- data/lib/uploadcare/exception/request_error.rb +2 -6
- data/lib/uploadcare/exception/retry_error.rb +2 -6
- data/lib/uploadcare/exception/throttle_error.rb +7 -11
- data/lib/uploadcare/exception/unknown_status_error.rb +4 -0
- data/lib/uploadcare/exception/upload_error.rb +4 -0
- data/lib/uploadcare/exception/upload_timeout_error.rb +4 -0
- data/lib/uploadcare/internal/authenticator.rb +101 -0
- data/lib/uploadcare/internal/error_handler.rb +102 -0
- data/lib/uploadcare/internal/signature_generator.rb +31 -0
- data/lib/uploadcare/internal/throttle_handler.rb +36 -0
- data/lib/uploadcare/internal/upload_io.rb +110 -0
- data/lib/uploadcare/internal/upload_params_generator.rb +86 -0
- data/lib/uploadcare/internal/user_agent.rb +22 -0
- data/lib/uploadcare/operations/multipart_upload.rb +213 -0
- data/lib/uploadcare/operations/upload_router.rb +162 -0
- data/lib/uploadcare/resources/addon_execution.rb +97 -0
- data/lib/uploadcare/resources/base_resource.rb +61 -0
- data/lib/uploadcare/resources/document_conversion.rb +81 -0
- data/lib/uploadcare/resources/file.rb +366 -0
- data/lib/uploadcare/resources/file_metadata.rb +135 -0
- data/lib/uploadcare/resources/group.rb +142 -0
- data/lib/uploadcare/resources/project.rb +26 -0
- data/lib/uploadcare/resources/video_conversion.rb +59 -0
- data/lib/uploadcare/resources/webhook.rb +85 -0
- data/lib/uploadcare/result.rb +85 -0
- data/lib/uploadcare/signed_url_generators/akamai_generator.rb +50 -51
- data/lib/uploadcare/signed_url_generators/base_generator.rb +15 -15
- data/lib/uploadcare/version.rb +7 -0
- data/lib/uploadcare/webhook_signature_verifier.rb +60 -0
- data/lib/uploadcare.rb +84 -50
- data/mise.toml +2 -0
- data/uploadcare-ruby.gemspec +8 -7
- metadata +103 -74
- data/api_examples/upload_api/put_presigned_url_x.rb +0 -8
- data/lib/uploadcare/api/api.rb +0 -25
- data/lib/uploadcare/client/addons_client.rb +0 -69
- data/lib/uploadcare/client/conversion/base_conversion_client.rb +0 -60
- data/lib/uploadcare/client/conversion/document_conversion_client.rb +0 -45
- data/lib/uploadcare/client/conversion/video_conversion_client.rb +0 -46
- data/lib/uploadcare/client/file_client.rb +0 -48
- data/lib/uploadcare/client/file_list_client.rb +0 -46
- data/lib/uploadcare/client/file_metadata_client.rb +0 -36
- data/lib/uploadcare/client/group_client.rb +0 -45
- data/lib/uploadcare/client/multipart_upload/chunks_client.rb +0 -58
- data/lib/uploadcare/client/multipart_upload_client.rb +0 -64
- data/lib/uploadcare/client/project_client.rb +0 -20
- data/lib/uploadcare/client/rest_client.rb +0 -77
- data/lib/uploadcare/client/rest_group_client.rb +0 -43
- data/lib/uploadcare/client/upload_client.rb +0 -46
- data/lib/uploadcare/client/uploader_client.rb +0 -128
- data/lib/uploadcare/client/webhook_client.rb +0 -49
- data/lib/uploadcare/concern/error_handler.rb +0 -54
- data/lib/uploadcare/concern/throttle_handler.rb +0 -25
- data/lib/uploadcare/concern/upload_error_handler.rb +0 -32
- data/lib/uploadcare/entity/addons.rb +0 -14
- data/lib/uploadcare/entity/conversion/base_converter.rb +0 -43
- data/lib/uploadcare/entity/conversion/document_converter.rb +0 -15
- data/lib/uploadcare/entity/conversion/video_converter.rb +0 -15
- data/lib/uploadcare/entity/decorator/paginator.rb +0 -79
- data/lib/uploadcare/entity/entity.rb +0 -18
- data/lib/uploadcare/entity/file.rb +0 -103
- data/lib/uploadcare/entity/file_list.rb +0 -32
- data/lib/uploadcare/entity/file_metadata.rb +0 -30
- data/lib/uploadcare/entity/group.rb +0 -49
- data/lib/uploadcare/entity/group_list.rb +0 -24
- data/lib/uploadcare/entity/project.rb +0 -13
- data/lib/uploadcare/entity/uploader.rb +0 -93
- data/lib/uploadcare/entity/webhook.rb +0 -14
- data/lib/uploadcare/param/authentication_header.rb +0 -37
- data/lib/uploadcare/param/conversion/document/processing_job_url_builder.rb +0 -39
- data/lib/uploadcare/param/conversion/video/processing_job_url_builder.rb +0 -64
- data/lib/uploadcare/param/param.rb +0 -10
- data/lib/uploadcare/param/secure_auth_header.rb +0 -51
- data/lib/uploadcare/param/simple_auth_header.rb +0 -14
- data/lib/uploadcare/param/upload/signature_generator.rb +0 -24
- data/lib/uploadcare/param/upload/upload_params_generator.rb +0 -41
- data/lib/uploadcare/param/user_agent.rb +0 -21
- data/lib/uploadcare/param/webhook_signature_verifier.rb +0 -23
- data/lib/uploadcare/ruby/version.rb +0 -5
data/lib/uploadcare.rb
CHANGED
|
@@ -1,54 +1,88 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
require '
|
|
5
|
-
|
|
6
|
-
# Exceptions
|
|
7
|
-
require 'exception/throttle_error'
|
|
8
|
-
require 'exception/request_error'
|
|
9
|
-
require 'exception/retry_error'
|
|
10
|
-
require 'exception/auth_error'
|
|
11
|
-
|
|
12
|
-
# Entities
|
|
13
|
-
require 'entity/entity'
|
|
14
|
-
require 'entity/file'
|
|
15
|
-
require 'entity/file_list'
|
|
16
|
-
require 'entity/group'
|
|
17
|
-
require 'entity/group_list'
|
|
18
|
-
require 'entity/project'
|
|
19
|
-
require 'entity/uploader'
|
|
20
|
-
require 'entity/webhook'
|
|
21
|
-
|
|
22
|
-
# Param
|
|
23
|
-
require 'param/webhook_signature_verifier'
|
|
24
|
-
|
|
25
|
-
# General api
|
|
26
|
-
require 'api/api'
|
|
27
|
-
|
|
28
|
-
# SignedUrlGenerators
|
|
29
|
-
require 'signed_url_generators/akamai_generator'
|
|
30
|
-
require 'signed_url_generators/base_generator'
|
|
31
|
-
|
|
32
|
-
# Ruby wrapper for Uploadcare API
|
|
33
|
-
#
|
|
34
|
-
# @see https://uploadcare.com/docs/api_reference
|
|
3
|
+
require 'zeitwerk'
|
|
4
|
+
require 'faraday'
|
|
5
|
+
|
|
35
6
|
module Uploadcare
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
7
|
+
@loader = Zeitwerk::Loader.for_gem
|
|
8
|
+
|
|
9
|
+
@loader.setup
|
|
10
|
+
|
|
11
|
+
require_relative 'uploadcare/cname_generator'
|
|
12
|
+
|
|
13
|
+
class << self
|
|
14
|
+
# Configure the global Uploadcare instance.
|
|
15
|
+
#
|
|
16
|
+
# @yield [config] Configuration block
|
|
17
|
+
# @yieldparam config [Uploadcare::Configuration] The configuration object
|
|
18
|
+
def configure
|
|
19
|
+
yield configuration if block_given?
|
|
20
|
+
ensure
|
|
21
|
+
@client = nil
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# Access the global configuration.
|
|
25
|
+
#
|
|
26
|
+
# @return [Uploadcare::Configuration]
|
|
27
|
+
def configuration
|
|
28
|
+
@configuration ||= Configuration.new
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Access a global client instance, or create one with overrides.
|
|
32
|
+
#
|
|
33
|
+
# @param config [Uploadcare::Configuration, nil] Custom configuration
|
|
34
|
+
# @param options [Hash] Configuration overrides
|
|
35
|
+
# @return [Uploadcare::Client]
|
|
36
|
+
def client(config: nil, **options)
|
|
37
|
+
if options.empty? && (config.nil? || config.equal?(configuration))
|
|
38
|
+
return (@client ||= Client.new(config: configuration))
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
Client.new(config: config || configuration, **options)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# @return [Uploadcare::Client::FilesAccessor]
|
|
45
|
+
def files
|
|
46
|
+
client.files
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# @return [Uploadcare::Client::GroupsAccessor]
|
|
50
|
+
def groups
|
|
51
|
+
client.groups
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# @return [Uploadcare::Operations::UploadRouter]
|
|
55
|
+
def uploads
|
|
56
|
+
client.uploads
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# @return [Uploadcare::Client::ProjectAccessor]
|
|
60
|
+
def project
|
|
61
|
+
client.project
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# Eager-load the gem namespace through Zeitwerk.
|
|
65
|
+
#
|
|
66
|
+
# @return [void]
|
|
67
|
+
def eager_load!
|
|
68
|
+
@loader.eager_load
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# Top-level aliases for the public resource classes.
|
|
73
|
+
File = Resources::File
|
|
74
|
+
# Alias for the group resource.
|
|
75
|
+
Group = Resources::Group
|
|
76
|
+
# Alias for the project resource.
|
|
77
|
+
Project = Resources::Project
|
|
78
|
+
# Alias for the webhook resource.
|
|
79
|
+
Webhook = Resources::Webhook
|
|
80
|
+
# Alias for the file metadata resource.
|
|
81
|
+
FileMetadata = Resources::FileMetadata
|
|
82
|
+
# Alias for the add-on execution resource.
|
|
83
|
+
AddonExecution = Resources::AddonExecution
|
|
84
|
+
# Alias for the document conversion resource.
|
|
85
|
+
DocumentConversion = Resources::DocumentConversion
|
|
86
|
+
# Alias for the video conversion resource.
|
|
87
|
+
VideoConversion = Resources::VideoConversion
|
|
54
88
|
end
|
data/mise.toml
ADDED
data/uploadcare-ruby.gemspec
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
lib = File.expand_path('lib', __dir__)
|
|
4
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
|
-
require 'uploadcare/
|
|
5
|
+
require 'uploadcare/version'
|
|
6
6
|
|
|
7
7
|
Gem::Specification.new do |spec|
|
|
8
8
|
spec.name = 'uploadcare-ruby'
|
|
@@ -41,12 +41,13 @@ Gem::Specification.new do |spec|
|
|
|
41
41
|
end
|
|
42
42
|
spec.bindir = 'exe'
|
|
43
43
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
44
|
-
spec.require_paths = ['lib'
|
|
44
|
+
spec.require_paths = ['lib']
|
|
45
45
|
|
|
46
|
-
spec.required_ruby_version = '>= 3.0
|
|
46
|
+
spec.required_ruby_version = '>= 3.3' # Compatible with Ruby 3.3+ and Ruby 4.0+
|
|
47
47
|
|
|
48
|
-
spec.add_dependency '
|
|
49
|
-
spec.add_dependency '
|
|
50
|
-
spec.add_dependency '
|
|
51
|
-
spec.add_dependency '
|
|
48
|
+
spec.add_dependency 'addressable', '~> 2.8'
|
|
49
|
+
spec.add_dependency 'faraday', '~> 2.14'
|
|
50
|
+
spec.add_dependency 'faraday-multipart', '~> 1.0'
|
|
51
|
+
spec.add_dependency 'mime-types', '~> 3.7'
|
|
52
|
+
spec.add_dependency 'zeitwerk', '~> 2.7'
|
|
52
53
|
end
|
metadata
CHANGED
|
@@ -1,78 +1,85 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: uploadcare-ruby
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 5.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- "@dmitrijivanchenko (Dmitrij Ivanchenko), @T0mbery (Andrey Aksenov)"
|
|
8
8
|
- kraft001 (Konstantin Rafalskii)
|
|
9
|
-
autorequire:
|
|
10
9
|
bindir: exe
|
|
11
10
|
cert_chain: []
|
|
12
|
-
date:
|
|
11
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
13
12
|
dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
|
15
|
-
name:
|
|
14
|
+
name: addressable
|
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
|
17
16
|
requirements:
|
|
18
17
|
- - "~>"
|
|
19
18
|
- !ruby/object:Gem::Version
|
|
20
|
-
version: '
|
|
19
|
+
version: '2.8'
|
|
21
20
|
type: :runtime
|
|
22
21
|
prerelease: false
|
|
23
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
24
23
|
requirements:
|
|
25
24
|
- - "~>"
|
|
26
25
|
- !ruby/object:Gem::Version
|
|
27
|
-
version: '
|
|
26
|
+
version: '2.8'
|
|
28
27
|
- !ruby/object:Gem::Dependency
|
|
29
|
-
name:
|
|
28
|
+
name: faraday
|
|
30
29
|
requirement: !ruby/object:Gem::Requirement
|
|
31
30
|
requirements:
|
|
32
31
|
- - "~>"
|
|
33
32
|
- !ruby/object:Gem::Version
|
|
34
|
-
version: '
|
|
33
|
+
version: '2.14'
|
|
35
34
|
type: :runtime
|
|
36
35
|
prerelease: false
|
|
37
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
38
37
|
requirements:
|
|
39
38
|
- - "~>"
|
|
40
39
|
- !ruby/object:Gem::Version
|
|
41
|
-
version: '
|
|
40
|
+
version: '2.14'
|
|
42
41
|
- !ruby/object:Gem::Dependency
|
|
43
|
-
name:
|
|
42
|
+
name: faraday-multipart
|
|
44
43
|
requirement: !ruby/object:Gem::Requirement
|
|
45
44
|
requirements:
|
|
46
45
|
- - "~>"
|
|
47
46
|
- !ruby/object:Gem::Version
|
|
48
|
-
version: '
|
|
47
|
+
version: '1.0'
|
|
49
48
|
type: :runtime
|
|
50
49
|
prerelease: false
|
|
51
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
52
51
|
requirements:
|
|
53
52
|
- - "~>"
|
|
54
53
|
- !ruby/object:Gem::Version
|
|
55
|
-
version: '
|
|
54
|
+
version: '1.0'
|
|
56
55
|
- !ruby/object:Gem::Dependency
|
|
57
|
-
name:
|
|
56
|
+
name: mime-types
|
|
58
57
|
requirement: !ruby/object:Gem::Requirement
|
|
59
58
|
requirements:
|
|
60
|
-
- - "
|
|
61
|
-
- !ruby/object:Gem::Version
|
|
62
|
-
version: '1.1'
|
|
63
|
-
- - "<"
|
|
59
|
+
- - "~>"
|
|
64
60
|
- !ruby/object:Gem::Version
|
|
65
|
-
version: '
|
|
61
|
+
version: '3.7'
|
|
66
62
|
type: :runtime
|
|
67
63
|
prerelease: false
|
|
68
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
69
65
|
requirements:
|
|
70
|
-
- - "
|
|
66
|
+
- - "~>"
|
|
71
67
|
- !ruby/object:Gem::Version
|
|
72
|
-
version: '
|
|
73
|
-
|
|
68
|
+
version: '3.7'
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: zeitwerk
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - "~>"
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: '2.7'
|
|
76
|
+
type: :runtime
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - "~>"
|
|
74
81
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '2'
|
|
82
|
+
version: '2.7'
|
|
76
83
|
description: Ruby API client that handles uploads and further operations with files
|
|
77
84
|
by wrapping Uploadcare Upload and REST APIs.
|
|
78
85
|
email:
|
|
@@ -81,6 +88,7 @@ executables: []
|
|
|
81
88
|
extensions: []
|
|
82
89
|
extra_rdoc_files: []
|
|
83
90
|
files:
|
|
91
|
+
- ".env.example"
|
|
84
92
|
- ".github/workflows/gem-push.yml"
|
|
85
93
|
- ".github/workflows/ruby.yml"
|
|
86
94
|
- ".gitignore"
|
|
@@ -91,8 +99,10 @@ files:
|
|
|
91
99
|
- DEVELOPMENT.md
|
|
92
100
|
- Gemfile
|
|
93
101
|
- LICENSE
|
|
102
|
+
- MIGRATING_V5.md
|
|
94
103
|
- README.md
|
|
95
104
|
- Rakefile
|
|
105
|
+
- api_examples/README.md
|
|
96
106
|
- api_examples/rest_api/delete_files_storage.rb
|
|
97
107
|
- api_examples/rest_api/delete_files_uuid_metadata_key.rb
|
|
98
108
|
- api_examples/rest_api/delete_files_uuid_storage.rb
|
|
@@ -126,6 +136,9 @@ files:
|
|
|
126
136
|
- api_examples/rest_api/put_files_uuid_metadata_key.rb
|
|
127
137
|
- api_examples/rest_api/put_files_uuid_storage.rb
|
|
128
138
|
- api_examples/rest_api/put_webhooks_id.rb
|
|
139
|
+
- api_examples/support/example_helper.rb
|
|
140
|
+
- api_examples/support/run_rest_example.rb
|
|
141
|
+
- api_examples/support/run_upload_example.rb
|
|
129
142
|
- api_examples/upload_api/get_from_url_status.rb
|
|
130
143
|
- api_examples/upload_api/get_group_info.rb
|
|
131
144
|
- api_examples/upload_api/get_info.rb
|
|
@@ -134,62 +147,82 @@ files:
|
|
|
134
147
|
- api_examples/upload_api/post_group.rb
|
|
135
148
|
- api_examples/upload_api/post_multipart_complete.rb
|
|
136
149
|
- api_examples/upload_api/post_multipart_start.rb
|
|
137
|
-
- api_examples/upload_api/
|
|
150
|
+
- api_examples/upload_api/put_multipart_part.rb
|
|
138
151
|
- bin/console
|
|
139
152
|
- bin/setup
|
|
153
|
+
- context7.json
|
|
154
|
+
- docs/release-notes-5.0.0.md
|
|
155
|
+
- examples/README.md
|
|
156
|
+
- examples/batch_upload.rb
|
|
157
|
+
- examples/group_creation.rb
|
|
158
|
+
- examples/large_file_upload.rb
|
|
159
|
+
- examples/simple_upload.rb
|
|
160
|
+
- examples/upload_with_progress.rb
|
|
161
|
+
- examples/url_upload.rb
|
|
140
162
|
- lib/uploadcare.rb
|
|
141
|
-
- lib/uploadcare/api/
|
|
142
|
-
- lib/uploadcare/
|
|
143
|
-
- lib/uploadcare/
|
|
144
|
-
- lib/uploadcare/
|
|
145
|
-
- lib/uploadcare/
|
|
146
|
-
- lib/uploadcare/
|
|
147
|
-
- lib/uploadcare/
|
|
148
|
-
- lib/uploadcare/
|
|
149
|
-
- lib/uploadcare/
|
|
150
|
-
- lib/uploadcare/
|
|
151
|
-
- lib/uploadcare/
|
|
152
|
-
- lib/uploadcare/
|
|
153
|
-
- lib/uploadcare/client
|
|
154
|
-
- lib/uploadcare/client/
|
|
155
|
-
- lib/uploadcare/client/
|
|
156
|
-
- lib/uploadcare/client/
|
|
157
|
-
- lib/uploadcare/client/
|
|
158
|
-
- lib/uploadcare/
|
|
159
|
-
- lib/uploadcare/
|
|
160
|
-
- lib/uploadcare/
|
|
161
|
-
- lib/uploadcare/
|
|
162
|
-
- lib/uploadcare/
|
|
163
|
-
- lib/uploadcare/
|
|
164
|
-
- lib/uploadcare/
|
|
165
|
-
- lib/uploadcare/
|
|
166
|
-
- lib/uploadcare/
|
|
167
|
-
- lib/uploadcare/
|
|
168
|
-
- lib/uploadcare/entity/file_list.rb
|
|
169
|
-
- lib/uploadcare/entity/file_metadata.rb
|
|
170
|
-
- lib/uploadcare/entity/group.rb
|
|
171
|
-
- lib/uploadcare/entity/group_list.rb
|
|
172
|
-
- lib/uploadcare/entity/project.rb
|
|
173
|
-
- lib/uploadcare/entity/uploader.rb
|
|
174
|
-
- lib/uploadcare/entity/webhook.rb
|
|
163
|
+
- lib/uploadcare/api/rest.rb
|
|
164
|
+
- lib/uploadcare/api/rest/addons.rb
|
|
165
|
+
- lib/uploadcare/api/rest/document_conversions.rb
|
|
166
|
+
- lib/uploadcare/api/rest/file_metadata.rb
|
|
167
|
+
- lib/uploadcare/api/rest/files.rb
|
|
168
|
+
- lib/uploadcare/api/rest/groups.rb
|
|
169
|
+
- lib/uploadcare/api/rest/project.rb
|
|
170
|
+
- lib/uploadcare/api/rest/video_conversions.rb
|
|
171
|
+
- lib/uploadcare/api/rest/webhooks.rb
|
|
172
|
+
- lib/uploadcare/api/upload.rb
|
|
173
|
+
- lib/uploadcare/api/upload/files.rb
|
|
174
|
+
- lib/uploadcare/api/upload/groups.rb
|
|
175
|
+
- lib/uploadcare/client.rb
|
|
176
|
+
- lib/uploadcare/client/addons_accessor.rb
|
|
177
|
+
- lib/uploadcare/client/api.rb
|
|
178
|
+
- lib/uploadcare/client/conversions_accessor.rb
|
|
179
|
+
- lib/uploadcare/client/document_conversions_accessor.rb
|
|
180
|
+
- lib/uploadcare/client/file_metadata_accessor.rb
|
|
181
|
+
- lib/uploadcare/client/files_accessor.rb
|
|
182
|
+
- lib/uploadcare/client/groups_accessor.rb
|
|
183
|
+
- lib/uploadcare/client/project_accessor.rb
|
|
184
|
+
- lib/uploadcare/client/video_conversions_accessor.rb
|
|
185
|
+
- lib/uploadcare/client/webhooks_accessor.rb
|
|
186
|
+
- lib/uploadcare/cname_generator.rb
|
|
187
|
+
- lib/uploadcare/collections/batch_result.rb
|
|
188
|
+
- lib/uploadcare/collections/paginated.rb
|
|
189
|
+
- lib/uploadcare/configuration.rb
|
|
175
190
|
- lib/uploadcare/exception/auth_error.rb
|
|
191
|
+
- lib/uploadcare/exception/configuration_error.rb
|
|
176
192
|
- lib/uploadcare/exception/conversion_error.rb
|
|
193
|
+
- lib/uploadcare/exception/invalid_request_error.rb
|
|
194
|
+
- lib/uploadcare/exception/multipart_upload_error.rb
|
|
195
|
+
- lib/uploadcare/exception/not_found_error.rb
|
|
177
196
|
- lib/uploadcare/exception/request_error.rb
|
|
178
197
|
- lib/uploadcare/exception/retry_error.rb
|
|
179
198
|
- lib/uploadcare/exception/throttle_error.rb
|
|
180
|
-
- lib/uploadcare/
|
|
181
|
-
- lib/uploadcare/
|
|
182
|
-
- lib/uploadcare/
|
|
183
|
-
- lib/uploadcare/
|
|
184
|
-
- lib/uploadcare/
|
|
185
|
-
- lib/uploadcare/
|
|
186
|
-
- lib/uploadcare/
|
|
187
|
-
- lib/uploadcare/
|
|
188
|
-
- lib/uploadcare/
|
|
189
|
-
- lib/uploadcare/
|
|
190
|
-
- lib/uploadcare/
|
|
199
|
+
- lib/uploadcare/exception/unknown_status_error.rb
|
|
200
|
+
- lib/uploadcare/exception/upload_error.rb
|
|
201
|
+
- lib/uploadcare/exception/upload_timeout_error.rb
|
|
202
|
+
- lib/uploadcare/internal/authenticator.rb
|
|
203
|
+
- lib/uploadcare/internal/error_handler.rb
|
|
204
|
+
- lib/uploadcare/internal/signature_generator.rb
|
|
205
|
+
- lib/uploadcare/internal/throttle_handler.rb
|
|
206
|
+
- lib/uploadcare/internal/upload_io.rb
|
|
207
|
+
- lib/uploadcare/internal/upload_params_generator.rb
|
|
208
|
+
- lib/uploadcare/internal/user_agent.rb
|
|
209
|
+
- lib/uploadcare/operations/multipart_upload.rb
|
|
210
|
+
- lib/uploadcare/operations/upload_router.rb
|
|
211
|
+
- lib/uploadcare/resources/addon_execution.rb
|
|
212
|
+
- lib/uploadcare/resources/base_resource.rb
|
|
213
|
+
- lib/uploadcare/resources/document_conversion.rb
|
|
214
|
+
- lib/uploadcare/resources/file.rb
|
|
215
|
+
- lib/uploadcare/resources/file_metadata.rb
|
|
216
|
+
- lib/uploadcare/resources/group.rb
|
|
217
|
+
- lib/uploadcare/resources/project.rb
|
|
218
|
+
- lib/uploadcare/resources/video_conversion.rb
|
|
219
|
+
- lib/uploadcare/resources/webhook.rb
|
|
220
|
+
- lib/uploadcare/result.rb
|
|
191
221
|
- lib/uploadcare/signed_url_generators/akamai_generator.rb
|
|
192
222
|
- lib/uploadcare/signed_url_generators/base_generator.rb
|
|
223
|
+
- lib/uploadcare/version.rb
|
|
224
|
+
- lib/uploadcare/webhook_signature_verifier.rb
|
|
225
|
+
- mise.toml
|
|
193
226
|
- uploadcare-ruby.gemspec
|
|
194
227
|
homepage: https://uploadcare.com/
|
|
195
228
|
licenses:
|
|
@@ -202,25 +235,21 @@ metadata:
|
|
|
202
235
|
bug_tracker_uri: https://github.com/uploadcare/uploadcare-ruby/issues
|
|
203
236
|
documentation_uri: https://www.rubydoc.info/gems/uploadcare-ruby/
|
|
204
237
|
rubygems_mfa_required: 'true'
|
|
205
|
-
post_install_message:
|
|
206
238
|
rdoc_options: []
|
|
207
239
|
require_paths:
|
|
208
240
|
- lib
|
|
209
|
-
- lib/uploadcare
|
|
210
|
-
- lib/uploadcare/rest
|
|
211
241
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
212
242
|
requirements:
|
|
213
243
|
- - ">="
|
|
214
244
|
- !ruby/object:Gem::Version
|
|
215
|
-
version: '3.
|
|
245
|
+
version: '3.3'
|
|
216
246
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
217
247
|
requirements:
|
|
218
248
|
- - ">="
|
|
219
249
|
- !ruby/object:Gem::Version
|
|
220
250
|
version: '0'
|
|
221
251
|
requirements: []
|
|
222
|
-
rubygems_version: 3.
|
|
223
|
-
signing_key:
|
|
252
|
+
rubygems_version: 3.6.9
|
|
224
253
|
specification_version: 4
|
|
225
254
|
summary: Ruby wrapper for uploadcare API
|
|
226
255
|
test_files: []
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
# Uploadcare lib provides high level API for multipart uploads that does everything for you
|
|
2
|
-
|
|
3
|
-
require 'uploadcare'
|
|
4
|
-
Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
|
|
5
|
-
Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
|
|
6
|
-
|
|
7
|
-
source_file = File.open('image.png')
|
|
8
|
-
Uploadcare::Uploader.upload(source_file, store: 'auto')
|
data/lib/uploadcare/api/api.rb
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
Gem.find_files('client/**/*.rb').each { |path| require path }
|
|
4
|
-
Gem.find_files('entity/**/*.rb').each { |path| require path }
|
|
5
|
-
|
|
6
|
-
module Uploadcare
|
|
7
|
-
# End-user interface
|
|
8
|
-
#
|
|
9
|
-
# It delegates methods to other classes:
|
|
10
|
-
# * To class methods of Entity objects
|
|
11
|
-
# * To instance methods of Client objects
|
|
12
|
-
# @see Uploadcare::Entity
|
|
13
|
-
# @see Uploadcare::Client
|
|
14
|
-
class Api
|
|
15
|
-
extend Forwardable
|
|
16
|
-
include Entity
|
|
17
|
-
|
|
18
|
-
def_delegator File, :file
|
|
19
|
-
def_delegators FileList, :file_list, :store_files, :delete_files
|
|
20
|
-
def_delegators Group, :group
|
|
21
|
-
def_delegators Project, :project
|
|
22
|
-
def_delegators Uploader, :upload, :upload_files, :upload_url
|
|
23
|
-
def_delegators Webhook, :create_webhook, :list_webhooks, :delete_webhook, :update_webhook
|
|
24
|
-
end
|
|
25
|
-
end
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require_relative 'rest_client'
|
|
4
|
-
|
|
5
|
-
module Uploadcare
|
|
6
|
-
module Client
|
|
7
|
-
# API client for handling uploaded files
|
|
8
|
-
# @see https://uploadcare.com/api-refs/rest-api/v0.7.0/#tag/Add-Ons
|
|
9
|
-
class AddonsClient < RestClient
|
|
10
|
-
# Execute ClamAV virus checking Add-On for a given target.
|
|
11
|
-
# @see https://uploadcare.com/api-refs/rest-api/v0.7.0/#operation/ucClamavVirusScanExecute
|
|
12
|
-
def uc_clamav_virus_scan(uuid, params = {})
|
|
13
|
-
content = { target: uuid, params: params }.to_json
|
|
14
|
-
post(uri: '/addons/uc_clamav_virus_scan/execute/', content: content)
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
# Check the status of an Add-On execution request that had been started using the Execute Add-On operation.
|
|
18
|
-
# @see https://uploadcare.com/api-refs/rest-api/v0.7.0/#operation/ucClamavVirusScanExecutionStatus
|
|
19
|
-
def uc_clamav_virus_scan_status(uuid)
|
|
20
|
-
get(uri: "/addons/uc_clamav_virus_scan/execute/status/#{query_params(uuid)}")
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
# Execute AWS Rekognition Add-On for a given target to detect labels in an image.
|
|
24
|
-
# @see https://uploadcare.com/api-refs/rest-api/v0.7.0/#operation/awsRekognitionExecute
|
|
25
|
-
def ws_rekognition_detect_labels(uuid)
|
|
26
|
-
content = { target: uuid }.to_json
|
|
27
|
-
post(uri: '/addons/aws_rekognition_detect_labels/execute/', content: content)
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
# Check the status of an Add-On execution request that had been started using the Execute Add-On operation.
|
|
31
|
-
# @see https://uploadcare.com/api-refs/rest-api/v0.7.0/#operation/awsRekognitionExecutionStatus
|
|
32
|
-
def ws_rekognition_detect_labels_status(uuid)
|
|
33
|
-
get(uri: "/addons/aws_rekognition_detect_labels/execute/status/#{query_params(uuid)}")
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
# Execute remove.bg background image removal Add-On for a given target.
|
|
37
|
-
# @see https://uploadcare.com/api-refs/rest-api/v0.7.0/#operation/removeBgExecute
|
|
38
|
-
def remove_bg(uuid, params = {})
|
|
39
|
-
content = { target: uuid, params: params }.to_json
|
|
40
|
-
post(uri: '/addons/remove_bg/execute/', content: content)
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
# Check the status of an Add-On execution request that had been started using the Execute Add-On operation.
|
|
44
|
-
# @see https://uploadcare.com/api-refs/rest-api/v0.7.0/#operation/removeBgExecutionStatus
|
|
45
|
-
def remove_bg_status(uuid)
|
|
46
|
-
get(uri: "/addons/remove_bg/execute/status/#{query_params(uuid)}")
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
# Execute AWS Rekognition Moderation Add-On for a given target to detect labels in an image.
|
|
50
|
-
# @see https://uploadcare.com/api-refs/rest-api/v0.7.0/#tag/Add-Ons/operation/awsRekognitionDetectModerationLabelsExecute
|
|
51
|
-
def ws_rekognition_detect_moderation_labels(uuid)
|
|
52
|
-
content = { target: uuid }.to_json
|
|
53
|
-
post(uri: '/addons/aws_rekognition_detect_moderation_labels/execute/', content: content)
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
# Check the status of an Add-On execution request that had been started using the Execute Add-On operation.
|
|
57
|
-
# @see https://uploadcare.com/api-refs/rest-api/v0.7.0/#tag/Add-Ons/operation/awsRekognitionDetectModerationLabelsExecutionStatus
|
|
58
|
-
def ws_rekognition_detect_moderation_labels_status(uuid)
|
|
59
|
-
get(uri: "/addons/aws_rekognition_detect_moderation_labels/execute/status/#{query_params(uuid)}")
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
private
|
|
63
|
-
|
|
64
|
-
def query_params(uuid)
|
|
65
|
-
"?#{URI.encode_www_form(request_id: uuid)}"
|
|
66
|
-
end
|
|
67
|
-
end
|
|
68
|
-
end
|
|
69
|
-
end
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require_relative '../rest_client'
|
|
4
|
-
require 'exception/conversion_error'
|
|
5
|
-
|
|
6
|
-
module Uploadcare
|
|
7
|
-
module Client
|
|
8
|
-
module Conversion
|
|
9
|
-
# This is a base client for conversion operations
|
|
10
|
-
#
|
|
11
|
-
# @see https://uploadcare.com/api-refs/rest-api/v0.7.0/#tag/Conversion
|
|
12
|
-
class BaseConversionClient < RestClient
|
|
13
|
-
API_VERSION_HEADER_VALUE = 'application/vnd.uploadcare-v0.7+json'
|
|
14
|
-
|
|
15
|
-
def headers
|
|
16
|
-
{
|
|
17
|
-
'Content-Type': 'application/json',
|
|
18
|
-
Accept: API_VERSION_HEADER_VALUE,
|
|
19
|
-
'User-Agent': Uploadcare::Param::UserAgent.call
|
|
20
|
-
}
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
private
|
|
24
|
-
|
|
25
|
-
def send_convert_request(arr, options, url_builder_class)
|
|
26
|
-
body = build_body_for_many(arr, options, url_builder_class)
|
|
27
|
-
post(uri: convert_uri, content: body)
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def success(response)
|
|
31
|
-
body = response.body.to_s
|
|
32
|
-
extract_result(body)
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def extract_result(response_body)
|
|
36
|
-
return if response_body.empty?
|
|
37
|
-
|
|
38
|
-
parsed_body = JSON.parse(response_body, symbolize_names: true)
|
|
39
|
-
errors = parsed_body[:error] || parsed_body[:problems]
|
|
40
|
-
return Dry::Monads::Result::Failure.call(errors) unless errors.nil? || errors.empty?
|
|
41
|
-
|
|
42
|
-
Dry::Monads::Result::Success.call(parsed_body)
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
# Prepares body for convert_many method
|
|
46
|
-
def build_body_for_many(arr, options, url_builder_class)
|
|
47
|
-
{
|
|
48
|
-
paths: arr.map do |params|
|
|
49
|
-
url_builder_class.call(
|
|
50
|
-
**build_paths_body(params)
|
|
51
|
-
)
|
|
52
|
-
end,
|
|
53
|
-
store: options[:store],
|
|
54
|
-
save_in_group: options[:save_in_group]
|
|
55
|
-
}.compact.to_json
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
end
|