Release notes







Blocks 0.47.0

{BREAKING} {widget}

We’ve updated the File Uploader configurator (disabled color picker, auto theme toggle).

All the API methods described at File Uploader API have been removed from the lr-upload-ctx-provider block, so they are no longer available directly. Now, they are available at the Uploader API instance which you can get using the getAPI() method of the lr-upload-ctx-provider block.

https://uploadcare.com/docs/file-uploader/migration-to-0.47.0/

SSO support

{dashboard}

Uploadcare now supports SSO with Okta. This feature allows seamless integration with your existing Okta setup, providing a secure way to handle sign-ins.


Blocks 0.46.0

{widget}

We’ve improved accessibility and keyboard navigation, enhancing user experience and inclusivity.

Blocks 0.45.0

{BREAKING} {widget}

Updates:

  • The previously deprecated API method setUploadMetadata has been removed. Use metadata instance property on lr-config block instead. See metadata for more details.
  • The previously deprecated API method addFiles has been removed. Use addFileFromObject, addFileFromUrl or addFileFromUuid instead. See File Uploader API for more details.

https://uploadcare.com/docs/file-uploader/migration-to-0.45.0/




SOC 2 Type 2 compliance 2024

{compliance}

Uploadcare has renewed SOC 2 Type 2 compliance in accordance with American Institute of Certified Public Accountants (AICPA) standards for SOC for Service Organizations also known as SSAE 18.

Achieving this standard with an unqualified opinion serves as third-party industry validation that Uploadcare provides enterprise-level security for customers’ data. An unqualified opinion on a SOC 2 Type 2 audit report demonstrates to Uploadcare’s current and future customers that the company manages their data with the highest standard of security and compliance.

https://uploadcare.com/about/trust/










Blocks 0.32.0

{BREAKING} {widget}

  • Global events were removed, e.g. window.addEventListener('LR_UPLOAD_FINISH', ...). Now, using lr-upload-ctx-provider is necessary.
  • All existing events and their payloads are changed. See the Events for more details.
  • Now the library has got a dedicated element for integration into native html forms lr-form-input.
  • Console debug output is enabled via the debug attribute lr-config.

https://uploadcare.com/docs/file-uploader/migration-to-0.32.0/









CDN updates

{cdn} {image processing}

  • Previously, when -/format/ was not specified, we attempted to preserve the original image format (e.g., providing PNG if the original was PNG). Now, we choose a format based on the content. If the image appears to be an illustration, PNG will be used. Please note that you still need to explicitly specify -/format/auto/ for AVIF and WebP output.
  • New option -/format/preserve/ is added.

https://uploadcare.com/docs/transformations/image/compression/#operation-format






Swift integration 0.10.0

{swift} {integration}

Update to Swift lib:

  • Now, all methods support Swift Concurrency (async-await).
  • Added a new method to upload a file from a URL that waits until the upload finishes and returns an UploadedFile object.
  • All methods have examples of usage in the source code documentation. You can find them by OPTION+click on a method in Xcode or by using the “Build Documentation” feature.
  • Demo app now uses new async methods.

https://github.com/uploadcare/uploadcare-swift/releases/tag/0.10.0


AVIF compression quality and “sharp YUV” technique

{image processing}

We have improved our AVIF compression quality. This affects all produced AVIFs but is most noticeable on low bitrates. Average image size should not be affected.

We have also enabled the “sharp YUV” technique for -/quality/lightest/ AVIFs, which could significantly reduce red channel distortion during chroma subsampling. This affects the resulting size only for images that benefit considerably from this technique.

https://uploadcare.com/docs/transformations/image/compression/#operation-quality


New webhook events and updates to the payload structure

{api}

We’ve updated our webhooks API to help you easily identify what caused an event.

New webhook events:

  • file.info_updated
  • file.stored
  • file.deleted

New payload element:

  • initiator

file.info_updated is fired when metadata or appdata has been altered. initiator contains a “link” to the entity that initiated the webhook.

https://uploadcare.com/docs/webhooks/


Unsafe content detection

{api}

Detect and identify inappropriate, unwanted, NSFW, or offensive user-generated content in order to enhance user safety, ensure brand integrity, and comply with local and global regulations.

https://uploadcare.com/docs/unsafe-content/

Blocks 0.25 — new configuration approach

{BREAKING} {widget} {js} {integrations}

The new version of Blocks (the library that powers our Uploader) is now featuring configuration via HTML attributes and DOM properties. We’re introducing the new lr-config block specifically designed for this purpose. Configuration in CSS is now deprecated (although it currently works, it will be removed shortly). Find the migration guide in the release notes.

https://github.com/uploadcare/blocks/releases/tag/v0.25.0



Image processing infrastructure acceleration

{cdn}

Our latest infrastructure upgrades have resulted in significantly reducing median processing latency, which helped us achieve a 30-50% boost in operations speed.


File Uploader is out of beta 🚀

{widget} {js} {integrations}

File Uploader is a new and highly customizable widget that allows users to upload files from various sources, utilizing the power of Uploadcare APIs. We supply a set of ready-made solutions for the most frequent file uploading cases: regular, inline, and minimal. Each with its own set of features and customization options. You can also use them as is or as a custom build reference.

https://app.uploadcare.com/projects/-/get-started https://uploadcare.com/docs/file-uploader/

Webhooks API update

{api}

API requests without webhook version are processed as v0.5 now.


Introducing Workspace

{dashboard}

Now all projects in dashboard are organized in a single Workspace.

The Uploadcare experience is centred around the concept of a project. We recommend creating at least two projects: for staging and the production environment. We also recommend having different projects for different kinds of data: one serve your frontend assets, another fo user-generated content, and one more for content that must me additionally secured with signed uploads and URLs.

https://app.uploadcare.com/


File Uploader for WooCommerce

{widget} {woocommerce} {js} {integrations}

Our tech-partners from Snowray have released a plugin for WooCommerce. It’s available at https://snowray.co, there are both free and paid versions.



Ruby and Rails updates

{ruby} {rails} {integrations}

We have fixed all known issues and published updates for Ruby and Rails integrations:

Updates include:

  • Drop support of unmaintainable Ruby versions (2.4, 2.5, 2.6) and Rails before 6.0.
  • Add support for Ruby 3+ (3.0, 3.1, 3.2) and Rails 7.0.
  • Allow ENV keys to be configured after the gem load.
  • Respect data-multiple in options.
  • Ruby requests examples in API references.





Blocks 0.15

{widget} {js} {integrations}

Blocks 0.15 has been rolled out! We are excited to announce the launch of a brand-new design of our new File Uploader. This new appearance offers a more modern look and feels, making it easier and faster to use. We have also made several other UI improvements, such as improved navigation and a better overall user experience. We hope you enjoy the new design and experience.

New uploader design in action
New uploader design in action

As a bonus, we’ve added an example of how to add additional sources.

UPD: Composition was removed.

https://github.com/uploadcare/blocks/releases/tag/v0.15.0


Ruby and Rails integrations Release Candidates

{ruby} {rails} {integrations}

These versions support latest Uploadcare REST API — v0.7, which introduces new file management features:

Currently they aren’t uploaded to RubyGems due to the necesity to rewrite part of the code to avoid issues with an installation from RubyGems.

https://github.com/uploadcare/uploadcare-ruby/releases/tag/v4.0.0-rc https://github.com/uploadcare/uploadcare-rails/releases/tag/v3.0.0-rc



Rectangle overlays

{image processing}

New -/rect/ operation for drawing color (including transparency) rectangular overlays introduced.

https://uploadcare.com/docs/transformations/image/overlay/#overlay-solid

PHP 8 support for Wordpress plugin

{php} {integrations}

Wordpress plugin 3.0.10 now supports PHP 8+.

https://wordpress.org/plugins/uploadcare/

Uploadcare Learning Center

{content}

We’ve just launched Uploadcare Learning Center. Get insights on all things network, media and UGC. Learn from fellow Uploadcare developers and build better products together.

https://uploadcare.com/learning/


SOC 2 Type 2 compliance 2022

{compliance}

Uploadcare has achieved SOC 2 Type 2 compliance in accordance with American Institute of Certified Public Accountants (AICPA) standards for SOC for Service Organizations also known as SSAE 18.

Achieving this standard with an unqualified opinion serves as third-party industry validation that Uploadcare provides enterprise-level security for customers’ data. An unqualified opinion on a SOC 2 Type 2 audit report demonstrates to Uploadcare’s current and future customers that the company manages their data with the highest standard of security and compliance.

https://uploadcare.com/about/trust/



Introducing new File Uploader (beta)

{widget} {integration}

Try our new File Uploader. This is an open-source, light and easily customizable solution with a modern design and is ready-made for the most frequent file-uploading cases.

https://uploadcare.com/docs/file-uploader/

Billing email(s) and address

{dashboard}

Now one can add additional emails to send billing notifications.

https://app.uploadcare.com/accounts/settings/

PHP integration 4.0.0

{php} {integration}

This release is a result of REST API update to a new version which introduces Add-Ons and File metadata.

https://github.com/uploadcare/uploadcare-php/releases/tag/v4.0.0





REST API 0.7 release

{BREAKING} {api}

New REST API version introduces Add-Ons and File metadata. More about them down below.

There are some minor but breaking changes for /files/ and /group/ endpoints.

v0.5 and v0.6 are supported until 15 Aug 2024.

https://uploadcare.com/docs/api/rest/changelog/

AWS Rekognition add-on

{api}

Execute AWS Rekognition that allows you to detect labels in an image.

https://uploadcare.com/docs/intelligence/object-recognition/

ClamAV add-on

{api}

Execute ClamAV virus checking.

(You can automate it for any project with a simple setting).

https://uploadcare.com/docs/api/rest/add-ons/uc-clamav-virus-scan-execute/

Remove.bg add-on

{api}

Execute remove.bg background image removal.

https://uploadcare.com/docs/remove-bg/

File metadata

{api}

File metadata provides an option to specify a file’s metadata during the file uploading procedure.

Separately, Upload API now provides an option to specify a file’s metadata during the file uploading procedure.

https://uploadcare.com/docs/file-metadata/


Uploadcare Widget v3.18.0

{widget} {integration}

New features:

  • metadata and metadataCallback settings
  • Added camera selector (useful when user has a few cameras, e.g. a virtual camera)

https://github.com/uploadcare/uploadcare-widget/releases/tag/v3.18.0

Swift integration 0.8.0

{swift} {integration}

What’s new:

  • All methods were updated to use Result type in completion blocks
  • Allow setting signature from the external source for the direct upload method (https://github.com/uploadcare/uploadcare-swift/pull/93)
  • Allow setting signature from the external source for other methods:
    • Upload file from url
    • Multipart file uploading
    • Create files group from a set of files
    • Create files group from a set of files UUIDs
    • Files group info
    • main uploadFile method that decides which upload method to use internally
    • upload method of UploadedFile object
  • Clarified how to use background upload

https://github.com/uploadcare/uploadcare-swift/releases/tag/0.8.0

TinyMCE integration update

{tinymce} {integration}

Added TinyMCE 6.0 support.

https://github.com/uploadcare/uploadcare-tinymce/releases/tag/v4.0.1


SOC 2 Type 1 compliance

{compliance}

Uploadcare has achieved SOC 2 Type 1 compliance in accordance with American Institute of Certified Public Accountants (AICPA) standards for SOC for Service Organizations also known as SSAE 18.

Achieving this standard with an unqualified opinion serves as third-party industry validation that Uploadcare provides enterprise-level security for customers’ data. An unqualified opinion on a SOC 2 Type 1 audit report demonstrates to Uploadcare’s current and future customers that the company manages their data with the highest standard of security and compliance.

https://uploadcare.com/about/trust/


New JS API clients

{js} {integration}

uploadcare-upload-client repository was transformed into the new monorepo — uploadcare-js-api-clients.

Now there are two packages: @uploadcare/upload-client and @uploadcare/rest-client.

They have locked versioning. @uploadcare/rest-client starts from 4.2.0, and @uploadcare/upload-client has no visible changes (except for the internal ones).

https://github.com/uploadcare/uploadcare-js-api-clients/releases/tag/v4.2.0

(Old uploadcare-node integration was deprecated in favor of the new one).

Angular wrapper v4.0.0

{BREAKING} {angular} {integration}

The library is now built with angular 14 toolchain. Compatibility with previous versions of Angular might have been broken.

https://github.com/uploadcare/ngx-uploadcare-widget/releases/tag/v4.0.0


301 redirect for REST API and proxy endpoints

{api}

A 301 redirect has been implemented from HTTP to HTTPS for the following API endpoints:

Server-side MIME type filtering

{dashboard}

By default, files of all MIME types can be uploaded to the project. You can validate uploads on backend by allowing only specific file types: for instance, audio files, documents, fonts, images, videos.

https://app.uploadcare.com/projects/-/settings#uploading








Meta information control

{image processing}

The original image often comes with additional information built into the image file. In most cases, this information doesn’t affect image rendering and thus can be safely stripped from the processed images. You can control image processing behavior with this option. This could be helpful if you want to keep the original or modified metadata in the processed image.

/strip_meta/all/
-/strip_meta/none/
-/strip_meta/sensitive/

https://uploadcare.com/docs/transformations/image/compression/#meta-information-control


API logs (beta)

{dashboard}

We’re proud to announce a new dashboard feature — API logs (currently in beta).

View details about your API requests, responses, and errors. Useful for diagnosis, analysis, and monitoring.

https://app.uploadcare.com/projects/-/api-logs/

Smart quality by default

{image processing}

When processing images, the result will be encoded to the new image on the fly. The compression operations allow you to control this process. The default quality for all processed images is “smart” from now on.

Smart quality modes analyze input images using content-aware algorithms to determine maximum compression that won’t cause noticeable visual artifacts. This new default is a huge change which could be a game changer for customers with a ton of traffic.

https://uploadcare.com/docs/transformations/image/compression/#operation-quality




-/crop/:aspect_ratio/ and -/crop/:tag/ operations

{image processing}

Now you can crop images by ratio, by an object, or combine these features together.

Crop by aspect ratio crops the image to the specified aspect ratio, cutting off the rest of the image. Crop by object crops the image to the object specified by the :tag parameter (possible values: face or image). The found object fits into the given aspect ratio if :aspect_ratio is specified.

https://uploadcare.com/docs/transformations/image/resize-crop/#operation-crop-aspect-ratio https://uploadcare.com/docs/transformations/image/resize-crop/#operation-crop-tags

-/zoom_objects/ operation

{image processing}

As a result of the operation, the object’s size in the image will change. The resolution of the image after the operation will remain the same. For example, an object in an image with applied operation -/zoom_objects/100/ is the object that occupies the maximum area of this image. It is best suited for images with solid or uniform backgrounds.

https://uploadcare.com/docs/transformations/image/resize-crop/#operation-zoom-objects

Geometry operations for SVG images

{image processing}

Geometric operations (preview, resize, crop, scale_crop) now change SVG attributes and work as expected.

https://uploadcare.com/docs/transformations/image/#svg-files


AVIF decoding and detecting

{image processing}

Our image processing pipeline now supports AVIF images as a source.

Uploadcare Widget v3.15.0 — AVIF

{widget} {integration}

Now AVIF images can be uploaded when imagesOnly option is enabled.

https://github.com/uploadcare/uploadcare-widget/releases/tag/v3.15.0

Separate totals in list of files response

{API}

Separate totals for different types of files (removed/stored/unstored) is added to the REST API v0.6 and higher: GET /files/ response.

https://uploadcare.com/docs/api/rest/file/files-list/


{legal}

We have adopted the new Standard Contractual Clauses ensuring Uploadcare uses appropriate data protection safeguards when transferring data from the EU to third countries.

For this change to take effect, we have updated the following documents:

Terms of Service:

  • Article 20 (“Data Protection”) now incorporates new DPA and SCCs.
  • Minor updates.

Data Protection Addendum:

  • Updated to be incorporated into ToS.
  • Minor updates.

Standard Contractual Clauses:

  • New SSCs (Model Two).
  • Incorporated into DPA.

Privacy Policy:

  • Added: “Personal data uploaded by you” (for clarity).
  • Minor updates to: “Data we collect on sites automatically”, “Data processing purposes”, “Data sharing”, “International data transfers”, “Data security”.
  • Removed: “Cookies and tracking” (now has a separate policy), “Privacy Shield principles” (in favour of SCCs), “GDPR” (as a separate article).

Cookie Policy:

  • Updated and separated from Privacy Policy.

These updates take effect on November 26, 2021.


HEIC decoding and detecting

{image processing}

Our image processing pipeline now supports HEIC images as a source.

Uploadcare Widget v3.14.0 — HEIC

{widget} {integration}

Now HEIC images can be uploaded when imagesOnly option is enabled.

https://github.com/uploadcare/uploadcare-widget/releases/tag/v3.14.0

Upload Client v2.0.0

{BREAKING} {js} {integration}

BREAKING CHANGES:

  • Remove default export because webpack can’t handle it without bugs.
  • Replace cancel key with signal in all cancelable methods.
  • Property response of UploadClientError now contains the whole response object ({ error: {...}}).

Updates:

  • Added CJS and ESM support.
  • CancelController replaced with the native AbortController.
  • MimeType added to the UploadcareFile type.
  • Exported high-level upload methods.
  • Added support to handle server error codes.
  • Added option userAgent to pass custom user agent string or function.

https://github.com/uploadcare/uploadcare-js-api-clients/releases/tag/v2.0.0

Next.js loader

{nextjs} {integration}

Optimize images with Uploadcare on the fly by using the UploadcareImage component or the uploadcareLoader custom image loader for Next.js.

https://uploadcare.com/docs/integrations/next-js/

Pricing free plan improvements

{pricing}

We improved limits and enabled more features on our free plan:

  • File size limit has increased from 100 MB to 500 MB.
  • Traffic limit has increased from 3 GB to 30 GB.
  • Animated images optimization is enabled.
  • Zapier, Make, and custom webhooks are enabled.

Signed webhooks

{API}

Each webhook payload now can be signed with a secret to ensure that the request comes from the expected sender. The resulting signature is included in the request header, so you can use it to validate that the request comes from Uploadcare.

https://uploadcare.com/docs/security/secure-webhooks/

Widget configurator in Dashboard

{dashboard}

Now you can customize and configure File Uploading widget in Dashboard. Go to the Integrate section and hit File Uploader.


Python and Django integrations v3.0.0

{BREAKING} {python} {django} {integration}

Version 3.0 contains breaking changes.

What’s added:

  • Multipart uploads.
  • Document and video conversions.
  • Signed URL generator.
  • Image transformation path builder.
  • Webhook operations.
  • Getting project information.
  • Low-level API.
  • Uploadcare client.

What’s changed:

  • Dropped support for Python 3.5.
  • Dropped support for Python 2.*.
  • Allowed uploading from URL in File.upload method.
  • Resource attributes can be accessed now as properties, not methods.
  • Uploadcare client should be initialized to access API.
  • Moved from Travis to Github Actions.

Simplified pricing

{pricing}

  • Extended free plan.
  • Straightforward and transparent Pay As You Grow plan.

https://uploadcare.com/pricing/

Swift integration v0.4.0

{swift} {integration}

  • External sources in uploading widget.
  • New uploading method that decides which upload method to use: direct or multipart.
  • Mime type detection for more file types.
  • Fixed bug when multipart uploading method ignored store parameter.

https://github.com/uploadcare/uploadcare-swift/releases/tag/0.4.0



Ruby integration v3.1.1

{ruby} {integration}

  • Fix Uploadcare::File#delete
  • Fix Uploadcare::File#store

https://github.com/uploadcare/uploadcare-ruby/releases/tag/v3.1.1

Ruby on Rails integration v2.0.0 — rewrote gem from scratch

{BREAKING} {rails} {integration}

Major release. Covers 100% of Uploadcare APIs. Based on Ruby gem v3. Has an example app.

2.x is not backward compatible with 1.x.

Added:

  • Add Uploadcare API interface:
    • Uploadcare::FileApi
    • Uploadcare::UploadApi
    • Uploadcare::GroupApi
    • Uploadcare::ConversionApi
    • Uploadcare::ProjectApi
    • Uploadcare::WebhookApi
  • Add uploadcare_widget_tag helper for views
  • Add methods File#store, File#delete, File#load
  • Add methods Group#transform_file_urls, Group#store, Group#load

Changed:

  • Change Uploading Widget view helpers
  • Rename has_uploadcare_file -> mount_uploadcare_file
  • Rename has_uploadcare_group -> mount_uploadcare_file_group
  • Change generated config path from config/uploadcare.yml to config/initializers/uploadcare.rb and add more options
  • Rename the class Uploadcare::Rails::Settings to Uploadcare::Rails::Configuration
  • Rename the class Uploadcare::Rails::Operations to Uploadcare::Rails::Transformations::ImageTransformations.
  • Configuration object is available as Uploadcare::Rails.configuration now.
  • Change methods File#url -> File#transform_url
  • Change methods Group#urls -> Group#file_urls
  • Change methods Group#load_data -> Group#load

Removed:

  • Remove uploadcare_uploader_tag helper
  • Remove uploadcare_multiple_uploader_field helper
  • Remove uploadcare_single_uploader_field helper
  • Remove uploadcare_uploader_options (now options are included in uploadcare_widget_tag)
  • Remove FormBuilder support
  • Remove Formtastic support
  • Remove SimpleForm support
  • Remove caching files and groups on delete
  • Remove callback ruby after_save after_save "store_#{ attribute }".to_sym. Now managed by the do_not_store option in config/initializers/uploadcare.rb
  • Remove methods File#prepared_operations, File#to_builder, File#to_json, File#as_json, File#marshal_dump, File#image
  • Remove methods Group#cache_data, Group#to_json, Group#as_json, Group#map_files, Group#load_data, Group#marshal_dump

https://github.com/uploadcare/uploadcare-rails/releases/tag/v2.0.0



Video info

{API}

Once a video file is uploaded, we extract its metadata (duration, format, bitrate, and specific audio & video stream metadata: codec, bitrate, frame rate and dimensions). It becomes available under the video_info key of the file information object. The file information can be retrieved by making a request to the REST API v0.6 or higher.

https://uploadcare.com/docs/api/rest/file/info/

Ruby integration v3.1.0

{ruby} {integration}

  • Added documents and videos conversion.
  • Added new attributes to the Entity class (variations, video_info, source, rekognition_info).
  • Added an opportunity to add custom logic to large files uploading process.

https://github.com/uploadcare/uploadcare-ruby/releases/tag/v3.1.0







New Upload and REST API references

{API} {documentation}

Now our APIs are compatible with OpenAPI specification:

PHP integration v3.1.1

{php} {integration}

Now you can generate signed CDN URLs for images with transformations.

https://github.com/uploadcare/uploadcare-php/releases/tag/v3.1.1

Usage section in Dashboard

{dashboard}

Now you can find your project usage stats (uploads, traffic, storage, conversions) in project Usage section.



Now SVG files are identified as images

{image processing}

From now on, we analyze the actual file content, not the MIME type. That means that users can now upload SVG files via File Uploader with the imagesOnly option turned on. It also means that accounts without payment details can upload & deliver SVG files. CDN operations work with SVG files, but won’t affect these content yet. We’ll be adding basic resize and crop operations support for SVG images later.


File page in Dashboard

{dashboard}

We’ve created file page where you can see extended information about chosen file, and what can be done with it.



Ruby integration v3.0.5 — rewrote gem from scratch

{BREAKING} {ruby} {integration}

  • Client wrappers for REST API
  • Serializers for REST API
  • Client wrappers for Upload API
  • Serializers for Upload API
  • rdoc documentation
  • Upload/group functionality
  • User API
  • User agent
  • Isolated clients, entities and concerns
  • Expanded File and Group entities
  • Better pagination and iterators for GroupList & FileList
  • Better pagination methods for GroupList & FileList

Note that uploadcare-ruby 3.x is not backward compatible with 2.x.

https://github.com/uploadcare/uploadcare-ruby/releases/tag/v3.0.5


-/overlay/self operation

{image processing}

You can add a stylized background from the same image. It visually extends the image appearance vertically or horizontally.

https://uploadcare.com/docs/transformations/image/overlay/#overlay-self

Effects tab v1.5.0

{widget}

Added:

  • Generate an english-only bundle that imports the correct uploadcare.lang.en.js bundle.
  • Generate a minified english-only bundle that imports the correct uploadcare.lang.en.min.js bundle.

Fixed:

  • Call previewUrlCallback before rendering crop effect.
  • Update the existing minified bundle so that it imports the correct uploadcare.min.js bundle.

https://github.com/uploadcare/uploadcare-widget-tab-effects/releases/tag/v1.5.0


Search engine file indexing for new projects is off by default

{projects}

To increase the privacy of your and your users’ data, we have changed the default behavior for every Uploadcare project, created after March, 10th. We’re adding response headers that instruct search engines not to index file contents. You can toggle this behavior separately for each project in your Dashboard.

https://app.uploadcare.com/projects/-/settings#delivery



On-the-fly image processing updates

{image processing}

  • Now we choose JPEG format for images with totally opaque alpha channel if -/format/auto/ is used and WebP is not available.
  • When the original image is a low-quality JPEG and we need to re-encode it to another format (WebP for instance), we limit the output image’s quality by the original image quality approximation.
  • When the original image is a low-quality JPEG and we need to encode it as JPEG, we reduce the output image’s quality more accurate than before.
  • Face detection for small sized faces is improved.

Perceptual hash for images

{image processing}

File info response includes a value of a perceptual hash calculated using pixel contents of an image. Perceptual hashing is a common fingerprinting technique to quickly compare images and find duplicates or similar images.

https://uploadcare.com/docs/delivery/cdn/#operation-phash



Java integration v3.3.1

{java} {integration}

  • Update apache httpclient and httpmime dependencies to v4.5.13, fixes network related issues.
  • Fix signature for requests with query parameters was incorrect. (full url was used when making signature with query paramenters, base should not be there according to documentation and other libraries).
  • Fix possible issue with using default timeout values from machine that running UploadCareClient. Set our custom timeouts for connections, socket timeouts.

https://github.com/uploadcare/uploadcare-java/releases/tag/v3.3.1