NodeJS 云搜索 API 按上下文

NodeJS cloudinary search API by context

我可以使用这个

从我的 cloudinary 中获取所有 images/videos 的列表
  const response = await axios.get('https://api.cloudinary.com/v1_1/cloud_name/resources/image', {
    auth: {
      username: 'xxx',
      password: 'xx'
    }
  })

但我只想获取具有正确上下文的图像,所以我有两个要搜索的键值对。

{month: "November"}
{year: "2020}

但我似乎无法弄清楚如何从他们的文档中使用它,更重要的是下载他们的小部件以使用我不想使用的东西,而只是使用 axios。

https://cloudinary.com/documentation/admin_api

它的路线列为 /resources/:resource_type/context/

但是如果我尝试 https://api.cloudinary.com/v1_1/cloud_name/resources/image/context/month=November&year=2020

我收到一个错误

{
"error": {
"message": "Invalid value context for parameter type"
}
}

更新 20201117

我发现有一种方法可以通过搜索 API.
按多个上下文进行搜索 您需要使用And来组合条件。
我试过了,确实有效。

axios.post('https://<API_KEY>:<API_SECRET>@api.cloudinary.com/v1_1/cloud_name/resources/search', {
    "expression": "context.month=November AND context.year=2020"
}).then((response) => {
    console.log(response.data);
})

原答案

你可以这样使用。 https://api.cloudinary.com/v1_1/cloud_name/resources/image/context?key=month&value=November 只有一个键值对

这是模板表单文档。
curl https://<API_KEY>:<API_SECRET>@api.cloudinary.com/v1_1/<cloud_name>/resources/video/context?mycontextkey&value=mycontextvalue

但是,在文档中我没有看到 Get Resource by Context 中有多个键值对。

并且在cloudinary的nodejs SDK中。
它只实现了一个键值对,你可以在github

中看到它
params.key = key;
if (value != null) {
    params.value = value;
}
return call_api("get", uri, params, callback, options);

而且我认为搜索 api 可能会将其存档。
但是在 search api 的表达式字段中,它说。

You can search for a specific key-value pair, or for all resources with a particular key regardless of the value, or with a particular value regardless of the key.

所以,是的...... 搜索中只有一个特定的键值上下文 api。
但如果您仍想尝试使用搜索 api,您可以使用 POST 方法。

axios.post('https://<API_KEY>:<API_SECRET>@api.cloudinary.com/v1_1/cloud_name/resources/search', {
    "expression": "context.month=November"
}).then((response) => {
    console.log(response.data);
})

我也很困惑为什么在cloudinary中没有多个键值对用于上下文搜索。
然后,我想你可以转换你的上下文结构。

原文:

month=November
year=2020

将其转换为

date=2020-November

然后在GET方法中使用它进行上下文搜索。
curl https://api.cloudinary.com/v1_1/cloud_name/resources/image/context?key=date&value=2020-November

或者像这样用 POST 方法使用表达式。

axios.post('https://<API_KEY>:<API_SECRET>@api.cloudinary.com/v1_1/cloud_name/resources/search', {
    "expression": "context.date=2020-November"
}).then((response) => {
    console.log(response.data);
})