如何通过 node.js 为 cloudinary 转换图像

How to transform image via node.js for cloudinary

我无法通过 Node.js 正确使用 Cloudinary 的 API。在他们的 documentation 中就这么简单:

cloudinary.v2.uploader.upload("sample.jpg", 
    { eager: [
        { width: 400, height: 300, crop: "pad" }, 
        { width: 260, height: 200, crop: "crop", gravity: "north"} ]}, 
    function(error, result) {console.log(result); });

很遗憾,没有生成符合我的 eager 设置的图像。仅上传我的原始图像。尽管我在 Media Library.

下的设置下无法看到图像,但转换量确实增加了

编辑: 当我通过 URL 调用它时,图像会即时传送!我错过了什么吗?

提前致谢,

丹尼尔

我相信您正在寻找 Cloudinary,而不是 Cloudify。请重新标记。

使用急切转换时,它会在上传过程中创建图像的派生版本,而不是懒惰地或动态地创建。因此,转换是在上传时计算的。 您可以使用用法 API-

来验证这一点

cloudinary.v2.api.usage(function(error, result){console.log(result)});

您可以找到在响应中生成的 URL。因此,例如,您的代码将生成以下 URL-

http://res.cloudinary.com/<cloud_name>/image/upload/c_crop,g_north,h_200,w_260/v1518429787/sample.jpg

你做的是正确的。 cloudinary 的响应应该如下所示

  {
  asset_id: '7c40a8df3ac00dd62413f9dfb6425d8a',
  public_id: 'rrajl7nl6wxldmbsuouk',
  version: 1590261371,
  version_id: 'ecf752113f7d696e8fd79d1d4aad2176',
  signature: '8bc188c384580c669a77510ec9d93b9a60d45cd9',
  width: 4000,
  height: 6000,
  format: 'jpg',
  resource_type: 'image',
  created_at: '2020-05-23T19:16:11Z',
  tags: [ 'DSC_0884.JPG' ],
  bytes: 298518,
  type: 'upload',
  etag: 'e86babf3cb5cf25249753ac0b5ccca06',
  placeholder: false,
  url: 'http://res.cloudinary.com/pine-date/image/upload/v1590261371/rrajl7nl6wxldmbsuouk.jpg',
  secure_url: 'https://res.cloudinary.com/pine-date/image/upload/v1590261371/rrajl7nl6wxldmbsuouk.jpg',
  original_filename: 'tmp-2-1590261360679DSC_0884',
  original_extension: 'JPG',
  eager: [
    {
      transformation: 'c_fit,e_vibrance:80,h_300,w_400',
      width: 200,
      height: 300,
      bytes: 7325,
      format: 'jpg',
      url: 'http://res.cloudinary.com/pine-date/image/upload/c_fit,e_vibrance:80,h_300,w_400/v1590261371/rrajl7nl6wxldmbsuouk.jpg',
      secure_url: 'https://res.cloudinary.com/pine-date/image/upload/c_fit,e_vibrance:80,h_300,w_400/v1590261371/rrajl7nl6wxldmbsuouk.jpg'
    }
  ]
}

要获得急切的转换 url 您可以从 result.eager[<transformationIndex>].url

访问它