uploadcare-ruby 4.4.2 → 5.0.0.rc1
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 +78 -0
- 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 -6
- 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/docs/release-notes-5.0.0.rc1.md +34 -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 +60 -56
- 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 +102 -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 -59
- 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.rc1
|
|
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,81 @@ 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
|
+
- docs/release-notes-5.0.0.rc1.md
|
|
154
|
+
- examples/README.md
|
|
155
|
+
- examples/batch_upload.rb
|
|
156
|
+
- examples/group_creation.rb
|
|
157
|
+
- examples/large_file_upload.rb
|
|
158
|
+
- examples/simple_upload.rb
|
|
159
|
+
- examples/upload_with_progress.rb
|
|
160
|
+
- examples/url_upload.rb
|
|
140
161
|
- 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
|
|
162
|
+
- lib/uploadcare/api/rest.rb
|
|
163
|
+
- lib/uploadcare/api/rest/addons.rb
|
|
164
|
+
- lib/uploadcare/api/rest/document_conversions.rb
|
|
165
|
+
- lib/uploadcare/api/rest/file_metadata.rb
|
|
166
|
+
- lib/uploadcare/api/rest/files.rb
|
|
167
|
+
- lib/uploadcare/api/rest/groups.rb
|
|
168
|
+
- lib/uploadcare/api/rest/project.rb
|
|
169
|
+
- lib/uploadcare/api/rest/video_conversions.rb
|
|
170
|
+
- lib/uploadcare/api/rest/webhooks.rb
|
|
171
|
+
- lib/uploadcare/api/upload.rb
|
|
172
|
+
- lib/uploadcare/api/upload/files.rb
|
|
173
|
+
- lib/uploadcare/api/upload/groups.rb
|
|
174
|
+
- lib/uploadcare/client.rb
|
|
175
|
+
- lib/uploadcare/client/addons_accessor.rb
|
|
176
|
+
- lib/uploadcare/client/api.rb
|
|
177
|
+
- lib/uploadcare/client/conversions_accessor.rb
|
|
178
|
+
- lib/uploadcare/client/document_conversions_accessor.rb
|
|
179
|
+
- lib/uploadcare/client/file_metadata_accessor.rb
|
|
180
|
+
- lib/uploadcare/client/files_accessor.rb
|
|
181
|
+
- lib/uploadcare/client/groups_accessor.rb
|
|
182
|
+
- lib/uploadcare/client/project_accessor.rb
|
|
183
|
+
- lib/uploadcare/client/video_conversions_accessor.rb
|
|
184
|
+
- lib/uploadcare/client/webhooks_accessor.rb
|
|
185
|
+
- lib/uploadcare/cname_generator.rb
|
|
186
|
+
- lib/uploadcare/collections/batch_result.rb
|
|
187
|
+
- lib/uploadcare/collections/paginated.rb
|
|
188
|
+
- lib/uploadcare/configuration.rb
|
|
175
189
|
- lib/uploadcare/exception/auth_error.rb
|
|
190
|
+
- lib/uploadcare/exception/configuration_error.rb
|
|
176
191
|
- lib/uploadcare/exception/conversion_error.rb
|
|
192
|
+
- lib/uploadcare/exception/invalid_request_error.rb
|
|
193
|
+
- lib/uploadcare/exception/multipart_upload_error.rb
|
|
194
|
+
- lib/uploadcare/exception/not_found_error.rb
|
|
177
195
|
- lib/uploadcare/exception/request_error.rb
|
|
178
196
|
- lib/uploadcare/exception/retry_error.rb
|
|
179
197
|
- 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/
|
|
198
|
+
- lib/uploadcare/exception/unknown_status_error.rb
|
|
199
|
+
- lib/uploadcare/exception/upload_error.rb
|
|
200
|
+
- lib/uploadcare/exception/upload_timeout_error.rb
|
|
201
|
+
- lib/uploadcare/internal/authenticator.rb
|
|
202
|
+
- lib/uploadcare/internal/error_handler.rb
|
|
203
|
+
- lib/uploadcare/internal/signature_generator.rb
|
|
204
|
+
- lib/uploadcare/internal/throttle_handler.rb
|
|
205
|
+
- lib/uploadcare/internal/upload_io.rb
|
|
206
|
+
- lib/uploadcare/internal/upload_params_generator.rb
|
|
207
|
+
- lib/uploadcare/internal/user_agent.rb
|
|
208
|
+
- lib/uploadcare/operations/multipart_upload.rb
|
|
209
|
+
- lib/uploadcare/operations/upload_router.rb
|
|
210
|
+
- lib/uploadcare/resources/addon_execution.rb
|
|
211
|
+
- lib/uploadcare/resources/base_resource.rb
|
|
212
|
+
- lib/uploadcare/resources/document_conversion.rb
|
|
213
|
+
- lib/uploadcare/resources/file.rb
|
|
214
|
+
- lib/uploadcare/resources/file_metadata.rb
|
|
215
|
+
- lib/uploadcare/resources/group.rb
|
|
216
|
+
- lib/uploadcare/resources/project.rb
|
|
217
|
+
- lib/uploadcare/resources/video_conversion.rb
|
|
218
|
+
- lib/uploadcare/resources/webhook.rb
|
|
219
|
+
- lib/uploadcare/result.rb
|
|
191
220
|
- lib/uploadcare/signed_url_generators/akamai_generator.rb
|
|
192
221
|
- lib/uploadcare/signed_url_generators/base_generator.rb
|
|
222
|
+
- lib/uploadcare/version.rb
|
|
223
|
+
- lib/uploadcare/webhook_signature_verifier.rb
|
|
224
|
+
- mise.toml
|
|
193
225
|
- uploadcare-ruby.gemspec
|
|
194
226
|
homepage: https://uploadcare.com/
|
|
195
227
|
licenses:
|
|
@@ -202,25 +234,21 @@ metadata:
|
|
|
202
234
|
bug_tracker_uri: https://github.com/uploadcare/uploadcare-ruby/issues
|
|
203
235
|
documentation_uri: https://www.rubydoc.info/gems/uploadcare-ruby/
|
|
204
236
|
rubygems_mfa_required: 'true'
|
|
205
|
-
post_install_message:
|
|
206
237
|
rdoc_options: []
|
|
207
238
|
require_paths:
|
|
208
239
|
- lib
|
|
209
|
-
- lib/uploadcare
|
|
210
|
-
- lib/uploadcare/rest
|
|
211
240
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
212
241
|
requirements:
|
|
213
242
|
- - ">="
|
|
214
243
|
- !ruby/object:Gem::Version
|
|
215
|
-
version: '3.
|
|
244
|
+
version: '3.3'
|
|
216
245
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
217
246
|
requirements:
|
|
218
247
|
- - ">="
|
|
219
248
|
- !ruby/object:Gem::Version
|
|
220
249
|
version: '0'
|
|
221
250
|
requirements: []
|
|
222
|
-
rubygems_version: 3.
|
|
223
|
-
signing_key:
|
|
251
|
+
rubygems_version: 3.6.9
|
|
224
252
|
specification_version: 4
|
|
225
253
|
summary: Ruby wrapper for uploadcare API
|
|
226
254
|
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,59 +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
|
-
}.compact.to_json
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
end
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'client/conversion/base_conversion_client'
|
|
4
|
-
require 'param/conversion/document/processing_job_url_builder'
|
|
5
|
-
|
|
6
|
-
module Uploadcare
|
|
7
|
-
module Client
|
|
8
|
-
module Conversion
|
|
9
|
-
# This is client for document conversion
|
|
10
|
-
#
|
|
11
|
-
# @see https://uploadcare.com/api-refs/rest-api/v0.7.0/#operation/documentConvert
|
|
12
|
-
class DocumentConversionClient < BaseConversionClient
|
|
13
|
-
def convert_many(
|
|
14
|
-
arr,
|
|
15
|
-
options = {},
|
|
16
|
-
url_builder_class = Param::Conversion::Document::ProcessingJobUrlBuilder
|
|
17
|
-
)
|
|
18
|
-
send_convert_request(arr, options, url_builder_class)
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def get_conversion_status(token)
|
|
22
|
-
get(uri: "/convert/document/status/#{token}/")
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def document_info(uuid)
|
|
26
|
-
get(uri: "/convert/document/#{uuid}/")
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
private
|
|
30
|
-
|
|
31
|
-
def convert_uri
|
|
32
|
-
'/convert/document/'
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def build_paths_body(params)
|
|
36
|
-
{
|
|
37
|
-
uuid: params[:uuid],
|
|
38
|
-
format: params[:format],
|
|
39
|
-
page: params[:page]
|
|
40
|
-
}.compact
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
end
|