Можете ли вы изменить качество загруженных пользователем изображений в Cloudinary? - PullRequest
0 голосов
/ 18 октября 2019

У меня есть сайт, где пользователи загружают изображения.

Мне бы хотелось, чтобы качество всех уже загруженных изображений + любые новые загруженные изображения были одинаковыми.

Есть ли способ легко редактировать уже загруженные изображения, не заставляя пользователей повторно загружать свои соответствующие изображения?

Спасибо

1 Ответ

0 голосов
/ 19 октября 2019

Преимущество Cloudinary - возможность загружать оригиналы, а затем применять преобразование. Обычно рекомендация выглядит следующим образом:

  1. Установите параметр quality в качестве auto ( q_auto в URL), чтобы автоматически настроить качество изображения для правильного баланса между качествоми размер
  2. Установите для параметра fetch_format значение auto ( f_auto в URL), чтобы автоматически выбирать лучший формат в зависимости от браузера.
  3. Настройка высоты и ширинынеобходимые размеры отображаются на странице.

Пример: https://res.cloudinary.com/demo/image/upload/q_auto,f_auto,w_500/bike.jpg

Источник (и дополнительная информация) : https://cloudinary.com/documentation/image_optimization).

Но если вам нужно повторно загрузить контент и оставить то же самое public_id, самым простым решением будет использование их API. Я бы предложил сделать следующее:

  1. Получить ресурсы, которые необходимо повторно загрузить, используя API-интерфейсы Admin, получить ресурсы, позвонив . Я бы предложил разбить их на resource_type, а также включить параметры tags, установленные как true, и context, установленные как true, если они используются. Примечание Администратор API имеет ограниченную скорость, поэтому проверьте, какое ограничение использования связано с вашим планом здесь . Сохраните их в массиве для последующего использования. Ответ должен включать public_id, url, tags, context и т. Д. *
  2. Выполнить итерацию по предыдущему массиву и использовать метод загрузки API загрузки для повторной загрузки содержимого с использованием тех же параметров, которые были получены ранее (public_id, url, tags, context и т. д., например

    current_assets = [...]
    for (asset in current_assets) {
        result = cloudinary.v2.uploader.upload(
            asset['url'], 
            { public_id: asset['public_id'], tags: asset['tags'], context: assets['context']
            // include any incoming transformations to apply to the asset during upload
            },
            (err, res) => {
                if (err) console.log(err);
            console.log(res);
        })
    }
    

Источник : https://cloudinary.com/documentation/upload_images?query=incoming&c_query=Incoming%20transformations#incoming_transformations

...