如何通过 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
访问它
我无法通过 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