diff --git a/packages/strapi-plugin-upload/admin/src/containers/SettingsPage/index.js b/packages/strapi-plugin-upload/admin/src/containers/SettingsPage/index.js
index b538efc6b9..b36a3837c7 100644
--- a/packages/strapi-plugin-upload/admin/src/containers/SettingsPage/index.js
+++ b/packages/strapi-plugin-upload/admin/src/containers/SettingsPage/index.js
@@ -144,6 +144,19 @@ const SettingsPage = () => {
/>
+
{/*
diff --git a/packages/strapi-plugin-upload/admin/src/containers/SettingsPage/reducer.js b/packages/strapi-plugin-upload/admin/src/containers/SettingsPage/reducer.js
index 46a45ad264..2d4e03fb42 100644
--- a/packages/strapi-plugin-upload/admin/src/containers/SettingsPage/reducer.js
+++ b/packages/strapi-plugin-upload/admin/src/containers/SettingsPage/reducer.js
@@ -5,11 +5,13 @@ const initialState = fromJS({
initialData: {
responsiveDimensions: true,
sizeOptimization: true,
+ autoOrientation: false,
videoPreview: false,
},
modifiedData: {
responsiveDimensions: true,
sizeOptimization: true,
+ autoOrientation: false,
videoPreview: false,
},
});
diff --git a/packages/strapi-plugin-upload/admin/src/translations/en.json b/packages/strapi-plugin-upload/admin/src/translations/en.json
index 462c5747e7..936c6b04b7 100644
--- a/packages/strapi-plugin-upload/admin/src/translations/en.json
+++ b/packages/strapi-plugin-upload/admin/src/translations/en.json
@@ -64,6 +64,7 @@
"settings.form.responsiveDimensions.label": "Enable responsive friendly upload",
"settings.form.responsiveDimensions.description": "It automatically generates multiple formats (large, medium, small) of the uploaded asset",
"settings.form.sizeOptimization.label": "Enable size optimization (without quality loss)",
+ "settings.form.autoOrientation.label": "Enable auto orientation",
"settings.form.videoPreview.label": "Preview",
"settings.form.videoPreview.description": "It will generate a six-second preview of the video (GIF)",
"settings.section.video.label": "VIDEO",
diff --git a/packages/strapi-plugin-upload/admin/src/translations/ru.json b/packages/strapi-plugin-upload/admin/src/translations/ru.json
index 464bc25fed..9dedd20a83 100644
--- a/packages/strapi-plugin-upload/admin/src/translations/ru.json
+++ b/packages/strapi-plugin-upload/admin/src/translations/ru.json
@@ -8,6 +8,7 @@
"control-card.crop": "Кадрирование",
"control-card.delete": "Удалить",
"control-card.download": "Скачать",
+ "control-card.replace-media": "Заменить ресурс",
"control-card.edit": "Редактировать",
"control-card.save": "Сохранить",
"form.input.label.file-alt": "Альтернативный текст",
@@ -58,6 +59,7 @@
"settings.form.responsiveDimensions.label": "Включить адаптивную загрузку",
"settings.form.responsiveDimensions.description": "Будут сгенерированы большое, среднее, маленькое изображение",
"settings.form.sizeOptimization.label": "Включить оптимизацию размера (без потери качества)",
+ "settings.form.autoOrientation.label": "Включить автоопределение ориентации",
"settings.form.videoPreview.label": "Превью",
"settings.form.videoPreview.description": "Будет сгенерировано шестисекундное превью (GIF)",
"settings.section.video.label": "ВИДЕО",
@@ -71,4 +73,4 @@
"sort.updated_at_desc": "Сначала недавно обновлённые",
"window.confirm.close-modal.files": "Вы уверены? Некоторые файлы ещё не загружены.",
"window.confirm.close-modal.file": "Вы уверены? Изменения будут потеряны."
-}
\ No newline at end of file
+}
diff --git a/packages/strapi-plugin-upload/services/image-manipulation.js b/packages/strapi-plugin-upload/services/image-manipulation.js
index 67dcfb9088..388ddaeaa9 100644
--- a/packages/strapi-plugin-upload/services/image-manipulation.js
+++ b/packages/strapi-plugin-upload/services/image-manipulation.js
@@ -59,15 +59,17 @@ const generateThumbnail = async file => {
};
const optimize = async buffer => {
- const { sizeOptimization = false } = await strapi.plugins.upload.services.upload.getSettings();
+ const {
+ sizeOptimization = false,
+ autoOrientation = false,
+ } = await strapi.plugins.upload.services.upload.getSettings();
- if (!sizeOptimization) return { buffer };
-
- if (!(await canBeProccessed(buffer))) {
+ if (!sizeOptimization || !(await canBeProccessed(buffer))) {
return { buffer };
}
- return sharp(buffer)
+ const sharpInstance = autoOrientation ? sharp(buffer).rotate() : sharp(buffer);
+ return sharpInstance
.toBuffer({ resolveWithObject: true })
.then(({ data, info }) => ({
buffer: data,