您可以在 Cloudinary 上编辑用户上传图片的质量吗?

Can you edit the quality of user uploaded images on Cloudinary?

我有一个用户上传图片的网站。

我希望所有已上传图片的质量与所有新上传图片的质量相同。

有没有一种方法可以轻松编辑已上传的图片,而无需让用户重新上传各自的图片?

谢谢

Cloudinary的美妙之处在于能够上传原件然后应用转换。通常建议看起来是:

  1. quality 参数设置为 auto(URL 中的 q_auto)以自动调整图像质量以在两者之间取得适当的平衡质量和尺寸
  2. fetch_format 参数设置为 auto(URL 中的 f_auto)以根据浏览器自动选择最佳格式。
  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. 使用 Admin APIs get resources call. I would suggest breaking these down by resource_type and I would also include the parameters tags set as true and context set as true if being used. Note The Admin API is rate limited so check what usage limit is associated to your plan here 检索需要重新上传的资产。将它们存储在一个数组中以备后用。响应应包括 public_idurltagscontext 等...
  2. 遍历之前的数组并使用 Upload API's upload method 使用之前检索到的相同参数重新上传内容(public_idurltagscontext 等。例如

    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