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);
})
我可以使用这个
从我的 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);
})