uploadcare-ruby 4.4.1 → 4.4.3

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.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +4 -0
  3. data/CHANGELOG.md +16 -0
  4. data/README.md +19 -5
  5. data/api_examples/rest_api/delete_files_storage.rb +6 -0
  6. data/api_examples/rest_api/delete_files_uuid_metadata_key.rb +5 -0
  7. data/api_examples/rest_api/delete_files_uuid_storage.rb +5 -0
  8. data/api_examples/rest_api/delete_groups_uuid.rb +5 -0
  9. data/api_examples/rest_api/delete_webhooks_unsubscribe.rb +5 -0
  10. data/api_examples/rest_api/get_addons_aws_rekognition_detect_labels_execute_status.rb +7 -0
  11. data/api_examples/rest_api/get_addons_aws_rekognition_detect_moderation_labels_execute_status.rb +7 -0
  12. data/api_examples/rest_api/get_addons_remove_bg_execute_status.rb +7 -0
  13. data/api_examples/rest_api/get_addons_uc_clamav_virus_scan_execute_status.rb +7 -0
  14. data/api_examples/rest_api/get_convert_document_status_token.rb +6 -0
  15. data/api_examples/rest_api/get_convert_document_uuid.rb +6 -0
  16. data/api_examples/rest_api/get_convert_video_status_token.rb +6 -0
  17. data/api_examples/rest_api/get_files.rb +6 -0
  18. data/api_examples/rest_api/get_files_uuid.rb +6 -0
  19. data/api_examples/rest_api/get_files_uuid_metadata.rb +6 -0
  20. data/api_examples/rest_api/get_files_uuid_metadata_key.rb +6 -0
  21. data/api_examples/rest_api/get_groups.rb +6 -0
  22. data/api_examples/rest_api/get_groups_uuid.rb +6 -0
  23. data/api_examples/rest_api/get_project.rb +6 -0
  24. data/api_examples/rest_api/get_webhooks.rb +6 -0
  25. data/api_examples/rest_api/post_addons_aws_rekognition_detect_labels_execute.rb +6 -0
  26. data/api_examples/rest_api/post_addons_aws_rekognition_detect_moderation_labels_execute.rb +6 -0
  27. data/api_examples/rest_api/post_addons_remove_bg_execute.rb +6 -0
  28. data/api_examples/rest_api/post_addons_uc_clamav_virus_scan_execute.rb +6 -0
  29. data/api_examples/rest_api/post_convert_document.rb +9 -0
  30. data/api_examples/rest_api/post_convert_video.rb +11 -0
  31. data/api_examples/rest_api/post_files_local_copy.rb +7 -0
  32. data/api_examples/rest_api/post_files_remote_copy.rb +8 -0
  33. data/api_examples/rest_api/post_webhooks.rb +10 -0
  34. data/api_examples/rest_api/put_files_storage.rb +9 -0
  35. data/api_examples/rest_api/put_files_uuid_metadata_key.rb +8 -0
  36. data/api_examples/rest_api/put_files_uuid_storage.rb +6 -0
  37. data/api_examples/rest_api/put_webhooks_id.rb +12 -0
  38. data/api_examples/upload_api/get_from_url_status.rb +6 -0
  39. data/api_examples/upload_api/get_group_info.rb +7 -0
  40. data/api_examples/upload_api/get_info.rb +7 -0
  41. data/api_examples/upload_api/post_base.rb +6 -0
  42. data/api_examples/upload_api/post_from_url.rb +6 -0
  43. data/api_examples/upload_api/post_group.rb +9 -0
  44. data/api_examples/upload_api/post_multipart_complete.rb +8 -0
  45. data/api_examples/upload_api/post_multipart_start.rb +8 -0
  46. data/api_examples/upload_api/put_presigned_url_x.rb +8 -0
  47. data/lib/uploadcare/client/conversion/base_conversion_client.rb +2 -1
  48. data/lib/uploadcare/client/conversion/document_conversion_client.rb +4 -0
  49. data/lib/uploadcare/client/multipart_upload_client.rb +1 -1
  50. data/lib/uploadcare/entity/conversion/base_converter.rb +7 -0
  51. data/lib/uploadcare/entity/file.rb +1 -2
  52. data/lib/uploadcare/param/authentication_header.rb +2 -2
  53. data/lib/uploadcare/ruby/version.rb +1 -1
  54. data/lib/uploadcare/signed_url_generators/akamai_generator.rb +7 -2
  55. metadata +45 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1cd6e50f0d12bc1cd65c531fa7e5656e41149433c042aedeb5d8899425ae6e53
4
- data.tar.gz: baa9f7cc358eba65895e608073d2ad188bc68ff1b5a44b8c51e6d5b2e72fc8bb
3
+ metadata.gz: 9bf27040e7e061caf3e4810f1e40ab9421f0a063eee05b2338a4b1e7255524bd
4
+ data.tar.gz: b41c835893fc836263ba7e354fce6427a9fbbaec26efbea485fac9874d162af1
5
5
  SHA512:
6
- metadata.gz: eab5bac3add563b090d18e7f82e2c7c852e95ff0d99530f8a3d25ec2d9eb47f1d146d38fc3dec9335af3bb9cebb74079b5fb27d3f46c7c1971d892185607df06
7
- data.tar.gz: 2edc0a691512ac31210f5fada71d7515c59ac8305c5a522e04f2f90924af313cdba4707860e8bb6d1aaeec4053cff0869f0f5f14a458d33832c57587d3ab9822
6
+ metadata.gz: 810bd3ad7369ddbb2f44a932d12699c5b969bec1feb33ade6805a31a61d18afc102043ba1e61b0b53c7996956c4b6c8496a8e807598436d7325ad33c3a3bf33e
7
+ data.tar.gz: ef9f05f9f586ba804de9e424ee9634abaebf8cff8a7d47be13147206fa2ff3e3adeac56f61f8ea54ccea77e36a523df100438647df01a92c0f1e0f42d5dff5b3
data/.rubocop.yml CHANGED
@@ -34,3 +34,7 @@ Style/Documentation:
34
34
 
35
35
  Style/OptionalBooleanParameter:
36
36
  AllowedMethods: ['create']
37
+
38
+ Style/FrozenStringLiteralComment:
39
+ Exclude:
40
+ - 'api_examples/**/*'
data/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 4.4.3 — 2024-07-06
4
+
5
+ ### Added
6
+ * Multi page conversion parameter (`save_in_group`) added to `DocumentConverter#convert` options.
7
+
8
+ ### Fixed
9
+ * Fixed that signed URLs now work with ~ in the path. This also fixes signed URLs with grouped file URLs.
10
+
11
+ ## 4.4.2 — 2024-05-29
12
+
13
+ ### Fixed
14
+ * Fixed the `Uploadcare::File.remote_copy` method which raised an `ApiStruct::EntityError: {url} must be Hash`. Now returns a string instead of a `File` entity instance.
15
+
16
+ ### Added
17
+ * `Document Info` API added in `DocumentConverter`.
18
+
3
19
  ## 4.4.1 — 2024-04-27
4
20
 
5
21
  ### Added
data/README.md CHANGED
@@ -556,7 +556,7 @@ An `Add-On` is an application implemented by Uploadcare that accepts uploaded fi
556
556
  ##### AWS Rekognition
557
557
 
558
558
  ```ruby
559
- # Execute AWS Rekognition Add-On for a given target to detect labels in an image.
559
+ # Execute AWS Rekognition Add-On for a given target to detect labels in an image.
560
560
  # Note: Detected labels are stored in the file's appdata.
561
561
  Uploadcare::Addons.ws_rekognition_detect_labels('FILE_UUID')
562
562
 
@@ -567,7 +567,7 @@ Uploadcare::Addons.ws_rekognition_detect_labels_status('RETURNED_ID_FROM_WS_REKO
567
567
  ##### AWS Rekognition Moderation
568
568
 
569
569
  ```ruby
570
- # Execute AWS Rekognition Moderation Add-On for a given target to detect moderation labels in an image.
570
+ # Execute AWS Rekognition Moderation Add-On for a given target to detect moderation labels in an image.
571
571
  # Note: Detected moderation labels are stored in the file's appdata.
572
572
 
573
573
  Uploadcare::Addons.ws_rekognition_detect_moderation_labels('FILE_UUID')
@@ -738,6 +738,20 @@ More examples and options can be found [here](https://uploadcare.com/docs/transf
738
738
  ##### Document
739
739
 
740
740
  After each document file upload you obtain a file identifier in UUID format.
741
+
742
+ You can use file identifier to determine the document format and possible conversion formats.
743
+ ```ruby
744
+ Uploadcare::DocumentConverter.info("dc99200d-9bd6-4b43-bfa9-aa7bfaefca40")
745
+
746
+ # Response
747
+ {:error=>nil, :format=>{
748
+ :name=>"jpg",
749
+ :conversion_formats=>[
750
+ {:name=>"avif"}, {:name=>"bmp"}, {:name=>"gif"}, {:name=>"ico"}, {:name=>"pcx"}, {:name=>"pdf"}, {:name=>"png"}, {:name=>"ps"}, {:name=>"svg"}, {:name=>"tga"}, {:name=>"thumbnail"}, {:name=>"tiff"}, {:name=>"wbmp"}, {:name=>"webp"}
751
+ ]
752
+ }}
753
+ ```
754
+
741
755
  Then you can use this file identifier to convert your document to a new format:
742
756
 
743
757
  ```ruby
@@ -841,7 +855,7 @@ You can use custom domain and CDN provider to deliver files with authenticated U
841
855
  To generate authenticated URL from the library, you should choose `Uploadcare::SignedUrlGenerators::AkamaiGenerator` (or create your own generator implementation):
842
856
 
843
857
  ```ruby
844
- generator = Uploadcare::SignedUrlGenerators::AkamaiGenerator.new(cdn_host: 'example.com', secret_key: 'secret_key')
858
+ generator = Uploadcare::SignedUrlGenerators::AkamaiGenerator.new(cdn_host: 'example.com', secret_key: 'secret_key')
845
859
  # Optional parameters: ttl: 300, algorithm: 'sha256'
846
860
  generator.generate_url(uuid, acl = optional)
847
861
 
@@ -849,13 +863,13 @@ generator.generate_url("a7d5645e-5cd7-4046-819f-a6a2933bafe3")
849
863
  # https://example.com/a7d5645e-5cd7-4046-819f-a6a2933bafe3/?token=exp=1649405263~acl=/a7d5645e-5cd7-4046-819f-a6a2933bafe3/~hmac=a989cae5342f17013677f5a0e6577fc5594cc4e238fb4c95eda36634eb47018b
850
864
 
851
865
  # You can pass in ACL as a second parameter to generate_url. See https://uploadcare.com/docs/security/secure-delivery/#authenticated-urls for supported acl formats
852
- generator.generate_url("a7d5645e-5cd7-4046-819f-a6a2933bafe3", '/*/')
866
+ generator.generate_url("a7d5645e-5cd7-4046-819f-a6a2933bafe3", '/*/')
853
867
  # https://example.com/a7d5645e-5cd7-4046-819f-a6a2933bafe3/?token=exp=1649405263~acl=/*/~hmac=3ce1152c6af8864b36d4dc721f08ca3cf0b3a20278d7f849e82c6c930d48ccc1
854
868
 
855
869
  # Optionally you can use wildcard: true to generate a wildcard acl token
856
870
  generator.generate_url("a7d5645e-5cd7-4046-819f-a6a2933bafe3", wildcard: true)
857
871
  # https://example.com/a7d5645e-5cd7-4046-819f-a6a2933bafe3/?token=exp=1714233449~acl=/a7d5645e-5cd7-4046-819f-a6a2933bafe3/*~hmac=a568ee2a85dd90a8a8a1ef35ea0cc0ef0acb84fe81990edd3a06eacf10a52b4e
858
-
872
+
859
873
  # You can also pass in a custom ttl and algorithm to AkamaiGenerator
860
874
  generator = Uploadcare::SignedUrlGenerators::AkamaiGenerator.new(cdn_host: 'example.com', secret_key: 'secret_key', ttl: 10)
861
875
  generator.generate_url("a7d5645e-5cd7-4046-819f-a6a2933bafe3")
@@ -0,0 +1,6 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ uuids = %w[21975c81-7f57-4c7a-aef9-acfe28779f78 cbaf2d73-5169-4b2b-a543-496cf2813dff]
6
+ puts Uploadcare::FileList.batch_delete(uuids)
@@ -0,0 +1,5 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ puts Uploadcare::FileMetadata.delete('1bac376c-aa7e-4356-861b-dd2657b5bfd2', 'pet')
@@ -0,0 +1,5 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ puts Uploadcare::File.delete('1bac376c-aa7e-4356-861b-dd2657b5bfd2')
@@ -0,0 +1,5 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ puts Uploadcare::Group.delete('c5bec8c7-d4b6-4921-9e55-6edb027546bc~1')
@@ -0,0 +1,5 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ puts Uploadcare::Webhook.delete('https://yourwebhook.com')
@@ -0,0 +1,7 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ request_id = 'd1fb31c6-ed34-4e21-bdc3-4f1485f58e21'
6
+ result = Uploadcare::Addons.ws_rekognition_detect_labels_status(request_id)
7
+ puts result.status
@@ -0,0 +1,7 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ request_id = 'd1fb31c6-ed34-4e21-bdc3-4f1485f58e21'
6
+ result = Uploadcare::Addons.ws_rekognition_detect_moderation_labels_status(request_id)
7
+ puts result.status
@@ -0,0 +1,7 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ request_id = '1bac376c-aa7e-4356-861b-dd2657b5bfd2'
6
+ result = Uploadcare::Addons.remove_bg_status(request_id)
7
+ puts result.status
@@ -0,0 +1,7 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ request_id = '1bac376c-aa7e-4356-861b-dd2657b5bfd2'
6
+ result = Uploadcare::Addons.uc_clamav_virus_scan_status(request_id)
7
+ puts result.status
@@ -0,0 +1,6 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ token = 32_921_143
6
+ puts Uploadcare::DocumentConverter.status(token)
@@ -0,0 +1,6 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ uuid = '740e1b8c-1ad8-4324-b7ec-112c79d8eac2'
6
+ puts Uploadcare::DocumentConverter.info(uuid)
@@ -0,0 +1,6 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ token = 1_201_016_744
6
+ puts Uploadcare::VideoConverter.status(token)
@@ -0,0 +1,6 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ list = Uploadcare::FileList.file_list(stored: true, removed: false, limit: 100)
6
+ list.each { |file| puts file.inspect }
@@ -0,0 +1,6 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ uuid = '1bac376c-aa7e-4356-861b-dd2657b5bfd2'
6
+ puts Uploadcare::File.info(uuid).inspect
@@ -0,0 +1,6 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ uuid = '1bac376c-aa7e-4356-861b-dd2657b5bfd2'
6
+ puts Uploadcare::FileMetadata.show(uuid, 'pet')
@@ -0,0 +1,6 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ uuid = '1bac376c-aa7e-4356-861b-dd2657b5bfd2'
6
+ puts Uploadcare::FileMetadata.index(uuid).inspect
@@ -0,0 +1,6 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ groups = Uploadcare::GroupList.list(limit: 10)
6
+ groups.each { |group| puts group.inspect }
@@ -0,0 +1,6 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ uuid = 'c5bec8c7-d4b6-4921-9e55-6edb027546bc~1'
6
+ puts Uploadcare::Group.info(uuid).inspect
@@ -0,0 +1,6 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ project_info = Uploadcare::Project.show
6
+ puts project_info.inspect
@@ -0,0 +1,6 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ webhooks = Uploadcare::Webhook.list
6
+ webhooks.each { |webhook| puts webhook.inspect }
@@ -0,0 +1,6 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ uuid = '1bac376c-aa7e-4356-861b-dd2657b5bfd2'
6
+ Uploadcare::Addons.ws_rekognition_detect_labels(uuid)
@@ -0,0 +1,6 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ uuid = '1bac376c-aa7e-4356-861b-dd2657b5bfd2'
6
+ Uploadcare::Addons.ws_rekognition_detect_moderation_labels(uuid)
@@ -0,0 +1,6 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ uuid = '1bac376c-aa7e-4356-861b-dd2657b5bfd2'
6
+ Uploadcare::Addons.remove_bg(uuid, crop: true)
@@ -0,0 +1,6 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ uuid = '1bac376c-aa7e-4356-861b-dd2657b5bfd2'
6
+ Uploadcare::Addons.uc_clamav_virus_scan(uuid, purge_infected: true)
@@ -0,0 +1,9 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ document_params = { uuid: '1bac376c-aa7e-4356-861b-dd2657b5bfd2', format: :pdf }
6
+ options = { store: '1' }
7
+ # for multipage conversion
8
+ # options = { store: '1', save_in_group: '1' }
9
+ Uploadcare::DocumentConverter.convert(document_params, options)
@@ -0,0 +1,11 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ video_params = {
6
+ uuid: '1bac376c-aa7e-4356-861b-dd2657b5bfd2',
7
+ format: :mp4,
8
+ quality: :lighter
9
+ }
10
+ options = { store: true }
11
+ Uploadcare::VideoConverter.convert(video_params, options)
@@ -0,0 +1,7 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ source = '1bac376c-aa7e-4356-861b-dd2657b5bfd2'
6
+ copied_file = Uploadcare::File.local_copy(source, store: true)
7
+ puts copied_file.uuid
@@ -0,0 +1,8 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ source_object = '1bac376c-aa7e-4356-861b-dd2657b5bfd2'
6
+ target = 'custom_storage_connected_to_the_project'
7
+ copied_file_url = Uploadcare::File.remote_copy(source_object, target, make_public: true)
8
+ puts copied_file_url
@@ -0,0 +1,10 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ options = {
6
+ target_url: 'https://yourwebhook.com',
7
+ event: 'file.uploaded',
8
+ is_active: true
9
+ }
10
+ Uploadcare::Webhook.create(**options)
@@ -0,0 +1,9 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ uuids = %w[
6
+ b7a301d1-1bd0-473d-8d32-708dd55addc0
7
+ 1bac376c-aa7e-4356-861b-dd2657b5bfd2
8
+ ]
9
+ Uploadcare::FileList.batch_store(uuids)
@@ -0,0 +1,8 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ uuid = '1bac376c-aa7e-4356-861b-dd2657b5bfd2'
6
+ key = 'pet'
7
+ value = 'dog'
8
+ Uploadcare::FileMetadata.update(uuid, key, value)
@@ -0,0 +1,6 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ uuid = '1bac376c-aa7e-4356-861b-dd2657b5bfd2'
6
+ Uploadcare::File.store(uuid)
@@ -0,0 +1,12 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ webhook_id = 1_473_151
6
+ options = {
7
+ target_url: 'https://yourwebhook.com',
8
+ event: 'file.uploaded',
9
+ is_active: true,
10
+ signing_secret: 'webhook-secret'
11
+ }
12
+ Uploadcare::Webhook.update(webhook_id, options)
@@ -0,0 +1,6 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ token = '945ebb27-1fd6-46c6-a859-b9893712d650'
6
+ puts Uploadcare::Uploader.get_upload_from_url_status(token)
@@ -0,0 +1,7 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ uuid = '0d712319-b970-4602-850c-bae1ced521a6~1'
6
+ info = Uploadcare::Group.info(uuid)
7
+ puts info.inspect
@@ -0,0 +1,7 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ uuid = '740e1b8c-1ad8-4324-b7ec-112c79d8eac2'
6
+ info = Uploadcare::File.info(uuid)
7
+ puts info.inspect
@@ -0,0 +1,6 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ source_file = File.open('image.png')
6
+ Uploadcare::Uploader.upload(source_file, store: 'auto')
@@ -0,0 +1,6 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ source_url = 'https://source.unsplash.com/featured'
6
+ Uploadcare::Uploader.upload(source_url, store: 'auto')
@@ -0,0 +1,9 @@
1
+ require 'uploadcare'
2
+ Uploadcare.config.public_key = 'YOUR_PUBLIC_KEY'
3
+ Uploadcare.config.secret_key = 'YOUR_SECRET_KEY'
4
+
5
+ uuids = [
6
+ 'd6d34fa9-addd-472c-868d-2e5c105f9fcd',
7
+ 'b1026315-8116-4632-8364-607e64fca723/-/resize/x800/'
8
+ ]
9
+ Uploadcare::Group.create(uuids)
@@ -0,0 +1,8 @@
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')
@@ -0,0 +1,8 @@
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')
@@ -0,0 +1,8 @@
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')
@@ -50,7 +50,8 @@ module Uploadcare
50
50
  **build_paths_body(params)
51
51
  )
52
52
  end,
53
- store: options[:store]
53
+ store: options[:store],
54
+ save_in_group: options[:save_in_group]
54
55
  }.compact.to_json
55
56
  end
56
57
  end
@@ -22,6 +22,10 @@ module Uploadcare
22
22
  get(uri: "/convert/document/status/#{token}/")
23
23
  end
24
24
 
25
+ def document_info(uuid)
26
+ get(uri: "/convert/document/#{uuid}/")
27
+ end
28
+
25
29
  private
26
30
 
27
31
  def convert_uri
@@ -47,7 +47,7 @@ module Uploadcare
47
47
  private
48
48
 
49
49
  def form_data_for(file)
50
- form_data_file = super(file)
50
+ form_data_file = super
51
51
  {
52
52
  filename: form_data_file.filename,
53
53
  size: form_data_file.size,
@@ -23,6 +23,13 @@ module Uploadcare
23
23
  conversion_client.new.get_conversion_status(token)
24
24
  end
25
25
 
26
+ # Returns the document format and possible conversion formats.
27
+ #
28
+ # @param uuid [String] UUID of the document
29
+ def info(uuid)
30
+ conversion_client.new.document_info(uuid)
31
+ end
32
+
26
33
  private
27
34
 
28
35
  def conversion_client
@@ -64,8 +64,7 @@ module Uploadcare
64
64
  #
65
65
  # @see https://uploadcare.com/api-refs/rest-api/v0.7.0/#tag/File/operation/createRemoteCopy
66
66
  def self.remote_copy(source, target, args = {})
67
- response = FileClient.new.remote_copy(source: source, target: target, **args).success[:result]
68
- File.new(response)
67
+ FileClient.new.remote_copy(source: source, target: target, **args).success[:result]
69
68
  end
70
69
 
71
70
  # Instance version of {internal_copy}
@@ -23,8 +23,8 @@ module Uploadcare
23
23
  end
24
24
 
25
25
  def self.validate_auth_config
26
- raise AuthError, 'Public Key is blank.' if is_blank?(Uploadcare.config.public_key)
27
- raise AuthError, 'Secret Key is blank.' if is_blank?(Uploadcare.config.secret_key)
26
+ raise Uploadcare::Exception::AuthError, 'Public Key is blank.' if is_blank?(Uploadcare.config.public_key)
27
+ raise Uploadcare::Exception::AuthError, 'Secret Key is blank.' if is_blank?(Uploadcare.config.secret_key)
28
28
  end
29
29
 
30
30
  # rubocop:disable Naming/PredicateName
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Uploadcare
4
- VERSION = '4.4.1'
4
+ VERSION = '4.4.3'
5
5
  end
@@ -35,12 +35,17 @@ module Uploadcare
35
35
 
36
36
  def build_acl(uuid, acl, wildcard: false)
37
37
  if wildcard
38
- "/#{sanitized_string(uuid)}/*"
38
+ "/#{sanitized_delimiter_path(uuid)}/*"
39
39
  else
40
- "/#{sanitized_string(acl)}/"
40
+ "/#{sanitized_delimiter_path(acl)}/"
41
41
  end
42
42
  end
43
43
 
44
+ # Delimiter sanitization referenced from: https://github.com/uploadcare/pyuploadcare/blob/main/pyuploadcare/secure_url.py#L74
45
+ def sanitized_delimiter_path(path)
46
+ sanitized_string(path).gsub('~') { |escape_char| "%#{escape_char.ord.to_s(16).downcase}" }
47
+ end
48
+
44
49
  def build_expire
45
50
  (Time.now.to_i + ttl).to_s
46
51
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uploadcare-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.4.1
4
+ version: 4.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - "@dmitrijivanchenko (Dmitrij Ivanchenko), @T0mbery (Andrey Aksenov)"
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2024-04-28 00:00:00.000000000 Z
12
+ date: 2024-07-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mimemagic
@@ -93,6 +93,48 @@ files:
93
93
  - LICENSE
94
94
  - README.md
95
95
  - Rakefile
96
+ - api_examples/rest_api/delete_files_storage.rb
97
+ - api_examples/rest_api/delete_files_uuid_metadata_key.rb
98
+ - api_examples/rest_api/delete_files_uuid_storage.rb
99
+ - api_examples/rest_api/delete_groups_uuid.rb
100
+ - api_examples/rest_api/delete_webhooks_unsubscribe.rb
101
+ - api_examples/rest_api/get_addons_aws_rekognition_detect_labels_execute_status.rb
102
+ - api_examples/rest_api/get_addons_aws_rekognition_detect_moderation_labels_execute_status.rb
103
+ - api_examples/rest_api/get_addons_remove_bg_execute_status.rb
104
+ - api_examples/rest_api/get_addons_uc_clamav_virus_scan_execute_status.rb
105
+ - api_examples/rest_api/get_convert_document_status_token.rb
106
+ - api_examples/rest_api/get_convert_document_uuid.rb
107
+ - api_examples/rest_api/get_convert_video_status_token.rb
108
+ - api_examples/rest_api/get_files.rb
109
+ - api_examples/rest_api/get_files_uuid.rb
110
+ - api_examples/rest_api/get_files_uuid_metadata.rb
111
+ - api_examples/rest_api/get_files_uuid_metadata_key.rb
112
+ - api_examples/rest_api/get_groups.rb
113
+ - api_examples/rest_api/get_groups_uuid.rb
114
+ - api_examples/rest_api/get_project.rb
115
+ - api_examples/rest_api/get_webhooks.rb
116
+ - api_examples/rest_api/post_addons_aws_rekognition_detect_labels_execute.rb
117
+ - api_examples/rest_api/post_addons_aws_rekognition_detect_moderation_labels_execute.rb
118
+ - api_examples/rest_api/post_addons_remove_bg_execute.rb
119
+ - api_examples/rest_api/post_addons_uc_clamav_virus_scan_execute.rb
120
+ - api_examples/rest_api/post_convert_document.rb
121
+ - api_examples/rest_api/post_convert_video.rb
122
+ - api_examples/rest_api/post_files_local_copy.rb
123
+ - api_examples/rest_api/post_files_remote_copy.rb
124
+ - api_examples/rest_api/post_webhooks.rb
125
+ - api_examples/rest_api/put_files_storage.rb
126
+ - api_examples/rest_api/put_files_uuid_metadata_key.rb
127
+ - api_examples/rest_api/put_files_uuid_storage.rb
128
+ - api_examples/rest_api/put_webhooks_id.rb
129
+ - api_examples/upload_api/get_from_url_status.rb
130
+ - api_examples/upload_api/get_group_info.rb
131
+ - api_examples/upload_api/get_info.rb
132
+ - api_examples/upload_api/post_base.rb
133
+ - api_examples/upload_api/post_from_url.rb
134
+ - api_examples/upload_api/post_group.rb
135
+ - api_examples/upload_api/post_multipart_complete.rb
136
+ - api_examples/upload_api/post_multipart_start.rb
137
+ - api_examples/upload_api/put_presigned_url_x.rb
96
138
  - bin/console
97
139
  - bin/setup
98
140
  - lib/uploadcare.rb
@@ -177,7 +219,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
177
219
  - !ruby/object:Gem::Version
178
220
  version: '0'
179
221
  requirements: []
180
- rubygems_version: 3.5.9
222
+ rubygems_version: 3.5.11
181
223
  signing_key:
182
224
  specification_version: 4
183
225
  summary: Ruby wrapper for uploadcare API