使用Cloudinary的Upload API上传图像


本文

这是关于如何使用云图像转换服务的Cloudinary API上传图像的摘要

写的是

  • Cloudinary API说明
  • 如何使用REST-API操作Cloudnary
  • 使用SDK的PHP上传示例

我正在做Cloudinary官方文档中的内容。

本文未写的内容

  • 我还没有写过Cloudinary的基础知识
  • 未编写Admin API和Search API的详细信息
  • 如果要尝试,则需要一个Cloudinary帐户,因此请创建一个免费帐户。

:warning: Admin API和Search API是单独的文章

程序环境

该程序是用PHP编写的。这次我不用原始框架就用原始PHP编写了它。和往常一样,这是Windows 10环境。

1
2
3
4
5
6
7
8
λ php -v
PHP 7.2.11 (cli) (built: Oct 10 2018 02:39:52) ( ZTS MSVC15 (Visual C++ 2017) x86 )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Xdebug v2.7.2, Copyright (c) 2002-2019, by Derick Rethans

λ composer -V
Composer version 1.7.3 2018-11-01 10:05:06

主要主题如下。

什么是Cloudinary API?

Cloudinary允许几乎所有操作都通过API执行。如您在此处看到的,API有三种主要类型:Upload APIAdmin APISearch API。我将简要介绍它。
https://cloudinary.com/documentation/cloudinary_references

上传API
用于上传图片和视频的API。通过媒体库上载时,Upload API具有一些无法使用的功能,因此这里有一些您可以使用并且可以很好使用的功能。

Admin API
Admin API有三种主要类型。
:one:处理上载到Cloudinary的资产。检查图像详细信息,删除删除的内容,删除标签等。
:two:设置Cloudinary本身。创建一个命名转换,创建一个预设,检查已使用的容量,等等。
:three:作为Admin API的一部分,有Search API。搜索Admin API资源的功能可以类似于搜索,但是在更详细的条件下搜索时,它就是Search API。

搜索API
搜索API是用于在复杂条件下搜索存储在媒体库中的资产的API。您可以按其他API无法满足的条件进行搜索,例如更新时间,标签和文件类型。

API限制

Cloudinary API对执行次数有限制。这取决于计划,但是由于我只有免费计划,因此我将发布免费计划的极限值。
image.png

Upload API没有特定的执行限制,但是Admin API每小时为500次。执行API时,剩余的调用数包含在Response标头中。

1
2
3
X-FeatureRateLimit-Limit: 500
X-FeatureRateLimit-Remaining: 498
X-FeatureRateLimit-Reset: Sat, 18 Apr 2020 10:00:00 GMT

有时您可以同时使用Upload API和Admin API。如果您想以限制自己的方式使用它,则应阅读手册并使用Upload API。

REST上传API

尝试图片上传API。
Cloudinary的API是一种REST-FUL API,您可以组装并执行自己的URL,也可以使用封装了该API的SDK(易于编程的一部分)来执行它。让我们首先直接点击API来了解一下。

:warning:顺便说一句,我不建议这样做,因为这很麻烦。大多数语言都有SDK,因此请使用。在下半年有一个关于SDK的故事,因此可以跳过。

直接通过HTTPS

上传

让我们实现官方文档中写的内容,并直接调用API。这是感受SDK价值的第一步。

API连接目标

连接到

API的URL就是这种格式。
https://api.cloudinary.com/v1_1/ <cloud name> / <resource_type> /上传

放置自己的cloud_nameresource_type并进行组装。就我而言,它看起来像这样。
https://api.cloudinary.com/v1_1/kanaxx/image/upload

上传类型

有两种上传图像的方法,一种需要认证,而另一种不需要认证。不需要身份验证的方法是将未指定数量的人的图像丢到您的Cloudinary帐户中。

:white_check_mark:身份验证请求的必需参数:
这是今天的主要地方。这是一个需要签名的上载。 (需要签名=已使用API??机密)

:negative_squared_cross_mark:未经身份验证的请求的必需参数:
无需使用API?? Secret即可上传的版本。我将在另一篇文章中介绍。

上传API参数

组装Upload API的参数。有一个参数列表。 API
https://cloudinary.com/documentation/image_upload_api_reference#optional_parameters

通常使用

public_idfolderuse_filenameunique_filenametypetransformation在Upload API的参数中,因为原始图像在上载的同时进行转换。

签名

参数签名以创建签名。
https://cloudinary.com/documentation/upload_images#generating_authentication_signatures

如果签名创建过程为日语,则

  • 从API参数中排除filecloud_nameresource_typeapi_key
  • 在时间戳参数中添加了UnixTime
  • 将英文的参数名称排序为param = value的格式